#java #linux #jar #execution
#java #linux #jar #выполнение
Вопрос:
В Linux, как выполнить Java jar-файл с внешними файлами jar?
Ответ №1:
Либо используйте -cp
флаг:
java -cp /path/to/somefolder/*.jar:/path/to/otherfolder/*.jar com.YourMainClass
Или добавьте Class-Path:
заголовок в манифест вашего jar (см. Ответ Джигара)
Примечание для других, кто ответил java -jar <etc>
: -jar
Флаг деактивирует стандартный -cp
флаг и CLASSPATH
переменную среды, поскольку он извлекает путь к классу из манифеста JAR. Любой ответ, который сочетает в себе -jar
и либо -cp
, либо $CLASSPATH
не будет работать.
Эта информация хорошо скрыта, но я, наконец, нашел ссылку:
-jar
Запустите программу, инкапсулированную в файл JAR. Первым аргументом является имя файла JAR вместо имени класса запуска. Для того, чтобы эта опция работала, манифест файла JAR должен содержать строку вида Main-Class: classname. Здесь classname идентифицирует класс, имеющийpublic static void main(String[]
метод, который служит отправной точкой вашего приложения. Смотрите справочную страницу Jar tool и Jar trail руководства по Java для получения информации о работе с файлами Jar и манифестами Jar-файлов. При использовании этой опции файл JAR является источником всех пользовательских классов, а другие настройки пути к пользовательскому классу игнорируются.
args)
Источник: java — программа запуска приложений Java
Ответ №2:
java -jar /path/to/externalJarFile.jar
Обновить
Вы можете добавить требуемую библиотеку в манифест с Class-Path:
заголовком
Например :
Class-Path: MyUtils.jar
Смотрите
Комментарии:
1. например, я хочу выполнить sample.jar файл.но для этого требуются дополнительные файлы jar (скажем add.jar ) расположен по другому пути. Теперь, как выполнить sample.jar
2. Это первый правильный ответ здесь, который содержит флаг -jar ( 1)