Проблема динамической загрузки при выполнении программы из jar

StackOverflow https://stackoverflow.com/questions/1600769

Вопрос

У меня есть приложение, которое можно расширять с помощью классов 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?Каков ваш путь к классу?Как вы указываете, какой класс загружать?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top