Run a JAR file from the command line and specify classpath
Запустите JAR-файл из командной строки и укажите путь к классу
Я скомпилировал JAR файл и указал Main-Class в манифесте (я использовал функцию экспорта Eclipse). Все мои зависимости находятся в каталоге с пометкой lib. Кажется, я не могу получить прямой ответ о том, как выполнить мой файл JAR, указав, что он должен использовать lib/* в качестве пути к классу.
При использовании этой опции файл JAR является исходным кодом всех пользовательских классов, а другие пользовательские настройки пути к классу игнорируются.
Вы также не можете "включить" необходимые файлы jar в другой файл jar (вам нужно будет извлечь их содержимое и поместить файлы .class в свой файл jar)
У вас есть два варианта:
включите все файлы jar из lib каталога в манифест (вы можете использовать относительные пути там)
Укажите все (включая ваш jar) в командной строке с помощью -cp:
В качестве альтернативы, используйте манифест, чтобы указать class-path и main-class, если хотите, поэтому вам не нужно использовать -cp или указывать main class . В вашем случае он будет содержать строки, подобные этой:
К сожалению, вам нужно указать каждый jar-файл в манифесте (это не имеет большого значения, поскольку вы делаете это только один раз, и вы можете использовать скрипт для сборки файла или использовать инструмент сборки, такой как ANT, Maven или Gradle). И ссылкой должен быть относительный или абсолютный каталог, в котором вы запускаете java -jar MyJar.jar.