Страницы

Поиск по вопросам

среда, 5 декабря 2018 г.

Загрузка классов в Java. Написание собственного загрузчика классов

Я хочу загружать классы из подключенного, собственного, написанного 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);

Комментариев нет:

Отправить комментарий