В Linux, как выполнить файл Java JAR с внешними файлами JAR? - PullRequest
8 голосов
/ 04 мая 2011

В Linux, как выполнить файл Java JAR с внешними файлами JAR?

Ответы [ 2 ]

11 голосов
/ 04 мая 2011

Либо используйте флаг -cp:

java -cp /path/to/somefolder/*.jar:/path/to/otherfolder/*.jar com.YourMainClass

Или добавьте заголовок Class-Path: в манифест вашей банки (см. Ответ Jigar)


Примечание для тех, кто ответил java -jar <etc>: флаг -jar деактивирует стандартный флаг -cp и переменную среды CLASSPATH, поскольку он извлекает путь к классу из манифеста JAR. Любой ответ, который объединяет -jar и -cp или $CLASSPATH, не будет работать.

Эта информация хорошо спрятана, но я наконец нашел ссылку:

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

Источник: java - средство запуска приложений Java

7 голосов
/ 04 мая 2011
java -jar /path/to/externalJarFile.jar

Обновление

Вы можете добавить необходимую библиотеку в манифест с Class-Path: заголовком

Например:

Class-Path: MyUtils.jar

См.

...