2013-06-12 4 views
1

Есть ли способ передать внешний файл jar при запуске приложения .jar?Java jar file & include external jar

Я пытаюсь запустить мою баночку, как это:

java -jar myJar.jar -cp externalJar.jar 

Файл банка выполняет хорошо, но я хочу, чтобы искать классы во внешнем файле. Я не могу включить другие классы в свою банку, потому что хочу, чтобы я мог разместить любой файл jar в той же папке, что и файл Jar, и искать там классы.

Единственный способ сделать это прямо сейчас, запустив мое приложение, как это:

java -cp myJar.jar;externalJar.jar MainClass 

Я не хочу, чтобы явно указать путь к моему MainClass запустить это основной метод.

ответ

0

Вы пытались добавить определенную папку в путь к классам во время запуска, а затем добавить свой файл jar в папку в дальнейшем?

1

По-видимому, опция -cp полностью игнорируется при использовании опции -jar. По крайней мере, это то, что вы можете прочитать на man-странице java о опции -jar:

Выполнение программы, инкапсулированной в файл JAR. Первый аргумент - имя JAR-файла вместо имени класса запуска. Для того чтобы этот параметр работал, манифест JAR-файла должен содержать строку формы Main-Class: classname. Здесь classname идентифицирует класс , имеющий общедоступный статический void main (String [] args), который служит отправной точкой для вашего приложения. См. Справочную страницу инструмента Jar и Jar trail учебника Java для информации о работе с файлами Jar и манифестами Jar-файла.

При использовании этой опции JAR-файл является источником всех пользовательских классов, а другие параметры пользователя пути игнорируются.

Обратите внимание, что JAR-файлы, которые могут быть запущены с «Java -jar» вариант может имеет свои права на выполнение устанавливается таким образом, они могут работать без использования «Java -jar». См. Файлы архива Java (JAR).

Я нашел это в этом BlogPost здесь: http://happygiraffe.net/blog/2009/04/30/java-jar-blats-your-classpath/