Я хочу загружать классы из подключенного, собственного, написанного jar-файла, к проекту.
Конкретно где я хочу это применить.
Многомодульное приложение. У меня есть три модуля,к примеру A.war B.war C.jar. Где A и B являются родительскими модулями для С. Так вот что бы мне исключить модуль С я хочу загружать из него классы собственным загрузчиком классов.
Как возможно такое реализовать?
Ответ
Как говорили в комментариях, есть класс URLClassLoader
Конструктор принимает в качестве параметра массив URL адресов до jar файлов.
URL[] classLoaderUrls = new URL[]{new URL("./somestuf.jar")};
URLClassLoader urlClassLoader = new URLClassLoader(classLoaderUrls);
А вот работать с этим не совсем удобно:
Загрузка класса
Class beanClass = urlClassLoader.loadClass("ex.coolStuf.Stuf");
Создание объекта класса
Constructor constructor = beanClass.getConstructor();
Object beanObj = constructor.newInstance();
Вызов метода
Method method = beanClass.getMethod("sayHello");
method.invoke(beanObj);
Комментариев нет:
Отправить комментарий