Проблема динамической загрузки при выполнении программы из jar
-
05-07-2019 - |
Вопрос
У меня есть приложение, которое можно расширять с помощью классов Java, соответствующих заданному интерфейсу.Если я запускаю программу из классов командной строки, я могу создать экземпляр дополнительных классов, используя:
Class.forName("myAddon").newInstance();
Однако, если я запускаю приложение (правильно устанавливая основной класс), я получаю исключение class not found.Кто-нибудь может пролить некоторый свет на то, что здесь происходит?
ТИА, Адам
Решение
Мне удалось заставить это работать, используя URLClassLoader, указав путь поиска в качестве текущего каталога следующим образом:
URLClassLoader cl = new URLClassLoader(new URL[] {new File(".").toURI().toURL()});
Спасибо за всю вашу помощь,
Адам
Другие советы
Класс, который вы ищете, отсутствует в classpath .Если он находится в каталоге
т. е.MyClass.class MyJar.jar
Вам нужно сделать:
java -classpath . -jar MyJar.jar
Но на самом деле нам нужно больше информации, чтобы ответить на этот вопрос.Каков основной класс, установленный в манифесте jar?Каков ваш путь к классу?Как вы указываете, какой класс загружать?