Запустите файл JAR из командной строки и укажите путь к классу



Я составил JAR file и указал основной класс в манифесте (я использовал Eclipse экспорт

1897   4  

4 ответов:

если указать -jar тут будет проигнорировано.

С документация:

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

вы также не можете "включить" необходимые файлы jar в другой файл jar (вам нужно будет извлечь их содержимое и поместить .файлы классов в вашу банку файл)

у вас есть два варианта:

  1. включить все файлы jar из в манифест (вы можете использовать относительные пути)
  2. указать все (в том числе ваш jar) в командной строке с помощью -cp:
    java -cp MyJar.jar:lib/* com.somepackage.subpackage.Main

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

java -cp <jar_name.jar:libs/*> com.test.App

jar_name.jar - это полное имя банки, которую вы хотите выполнить

libs/* это путь к вашей зависимости JARs

com.test.App - это полное имя класса из JAR, который имеет main(String[]) метод

jar и зависимый jar должны иметь разрешения на выполнение.

вы можете сделать это в оболочке unix:

java -cp MyJar.jar:lib/* com.somepackage.subpackage.Main

вы можете сделать это в Windows powershell:

java -cp "MyJar.jar;lib\*" com.somepackage.subpackage.Main

кроме того, используйте манифест, чтобы указать путь к классу и основной класс, если хотите, поэтому вам не нужно использовать -cp или укажите основной класс. В вашем случае он будет содержать такие строки:

Main-Class: com.test.App
Class-Path: lib/one.jar lib/two.jar

к сожалению, вам нужно прописать каждую банку в манифесте (не biggie, как вы делаете только один раз, и вы можете использовать скрипт для создания файла или использовать инструмент сборки, такой как ANT или Maven или Gradle). И ссылка должна быть относительным или абсолютным каталогом, где ты управляешь java -jar MyJar.jar.

затем выполните его с

java -jar MyJar.jar

Comments

    Ничего не найдено.