Проблема динамической загрузки, когда программа выполняется из банки - PullRequest
1 голос
/ 21 октября 2009

У меня есть приложение, которое расширяется с помощью классов Java, которые соответствуют заданному интерфейсу. Если я запускаю программу из классов командной строки, я могу создать дополнительные классы, используя:

Class.forName("myAddon").newInstance();

Однако, если я встряхну приложение (правильно установив основной класс), я получу исключение не найденный класс. Кто-нибудь может пролить свет на то, что здесь происходит?

ТИА, Адам

Ответы [ 2 ]

1 голос
/ 21 октября 2009

Мне удалось заставить это работать, используя URLClassLoader, указав путь поиска в качестве текущего каталога следующим образом:

URLClassLoader cl = new URLClassLoader(new URL[] {new File(".").toURI().toURL()});

Спасибо за вашу помощь,

Адам

0 голосов
/ 21 октября 2009

Класс, который вы ищете, не находится на пути к классам. Если его в каталоге

т.е. MyClass.class MyJar.jar

Вам нужно сделать:

java -classpath . -jar MyJar.jar

Но на самом деле нам нужно больше информации, чтобы ответить на вопрос. Какой основной класс установлен в манифесте jar? Какой у тебя классный путь? Как указать, какой класс загружать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...