Запустите jar с зависимостями из командной строки - PullRequest
0 голосов
/ 27 октября 2018

Java может запускать jar-файлы из командной строки следующим образом:

java -jar foobar.jar

Однако, если foobar.jar зависит от baz.jar, вышеприведенное вызовет исключение, как только любой из классов вbaz.jar вызывается, поскольку JVM не может узнать, где их искать.

Однако на странице руководства (OpenJDK 8 в Linux) говорится, что:

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

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

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Я полагаю, у вас есть только один основной класс в foobar.jar.Если оно больше 1, вам нужно указать, какой из них выполнить.Вы можете просто установить classpath перед выполнением jar

export CLASSPATH=$CLASSPATH:/JAR_LOCATION/bar.jar

0 голосов
/ 27 октября 2018

Когда вы используете java -jar, зависимости не указываются в командной строке.У вас есть 2 способа добавить jar к пути к классу:

  1. Вызовите java с основным классом и добавьте файлы jar, включая ваш foobar.jar, в командную строку:

    java -cp foobar.jar:baz.jar com.mycompany.MainClass
    
  2. Включить зависимости в файл манифеста foobar.jar (и затем запустить java -jar)

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