Подтвердить что ты не робот

Включить внешнюю банку при запуске java -jar

Из моих чтений, когда вы выполняете команду следующим образом:

java -jar foo.jar

Затем основной путь к классам игнорируется, а путь к классам - из файла манифеста.

Кроме того, classpath, объявленный в командной строке, также игнорируется. Итак, в:

java -classpath /usr/local/jar/foobar.jar -jar foo.jar

/usr/local/jar/foobar.jar игнорируется.

Наконец, я прочитал, что файл манифеста может содержать только относительные пути в файле jar.

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

4b9b3361

Ответ 1

Есть ли причина, по которой вы избегаете вызова основного класса, например

java -cp /usr/local/jar/foobar.jar:/some/other/path.jar com.your.main.classname

?

Этот тип вызова позволяет вам смешивать абсолютные пути с относительными путями. Поместите это в оболочку script или командный файл, чтобы избежать необходимости набирать или помнить полный путь к классам для упрощения.

Ответ 2

Вы можете создать папку, скажем lib, в папке с файлом jar.

Содержимое Manifest.MF может быть:

Main-Class: com.mastergaurav.test.app.MainClass
Class-Path: lib/one.jar lib/two.jar

Содержимое папки:

mainFolder/
   * lib/one.jar
   * lib/two.jar
   * my-main.jar

Для выполнения:

java -jar my-main.jar