2015-03-27 5 views
0

Я собираюсь запрограммировать Java-приложение, которое может загружать расширенные функции из внешнего каталога, содержащего файлы расширения .jar. Я попытался указать этот внешний каталог в свойстве Class-Path файла MANIFEST.MF, но, к сожалению (по спецификации Oracle), загрузка .jar-файлов с использованием подстановочных знаков не поддерживается/запрещена.Java Application loading external jar

Использование опции -classpath не работает до тех пор, пока в основной панели приложения присутствует файл манифеста.

У кого-нибудь есть идея, как я могу решить эту проблему. У меня есть еще одна возможность указать внешний .jar-каталог (либо конфигурационным файлом/настройкой, либо внутри программы). Благодаря

+0

Что-то вроде это может быть: http://stackoverflow.com/questions/60764/how-should-i-load-jars-dynamically-at-runtime – Bubletan

ответ

0

Реализовать свой собственный ClassLoader, которые могли бы просто расширить URLClassLoader и добавить URL каталога расширений к экземпляру загрузчика классов.

0

Я всегда ставлю внешнюю LIBS в директории для кувшинов мки таким образом:

 
    dir 
    |-myapp.jar 
    └ lib 
     |-mylib.jar 
     └ log4j-1.2.14.jar 

Тогда я перечисляю в LIBS в MANIFEST.MF для моего приложения:

Class-Path: lib/mylib.jar lib/log4j-1.2.14.jar

Смежные вопросы