Запустить класс в файле Jar - PullRequest
155 голосов
/ 21 июля 2011

Если у вас есть файл jar с именем myJar.jar, расположенный в / myfolder , и вы хотите использовать из него класс с именем myClass, как вы поступите с командной строкой?

Я думал, что это будет пойти в каталог и сказать java -cp myJar.jar.myClass, но это не работает. Любая помощь будет оценена.

Ответы [ 5 ]

231 голосов
/ 21 июля 2011

Используйте java -cp myjar.jar com.mypackage.myClass.

  1. Если класс отсутствует в пакете, просто java -cp myjar.jar myClass.

  2. Если вы не находитесь в каталоге, в котором находится myJar.jar, вы можете сделать следующее:

    1. На платформах Unix или Linux:

      java -cp /location_of_jar/myjar.jar com.mypackage.myClass

    2. В Windows:

      java -cp c:\location_of_jar\myjar.jar com.mypackage.myClass

21 голосов
/ 21 июля 2011

Вы хотите:

java -cp myJar.jar myClass

Документация дает следующий пример:

C:> java -classpath C:\java\MyClasses\myclasses.jar utility.myapp.Cool
17 голосов
/ 01 августа 2012

В Java доступно два типа файлов JAR:

  1. Запускаемый / исполняемый файл JAR, содержащий файл манифеста.Для запуска jar-файла Runnable вы можете использовать java -jar fileName.jar или java -jar -classpath abc.jar fileName.jar

  2. Простой файл jar, который не содержит файл манифеста, поэтому вы просто запускаете свой основной класс, указывая его путь java -cp ./fileName.jar MainClass

5 голосов
/ 21 июля 2011

Предполагается, что вы находитесь в каталоге, где находится файл myJar.jar, и что myClass содержит метод public static void main():

Вы используете следующую командную строку:

java -cp ./myJar.jar myClass

Где:

  1. myJar.jar находится в текущем пути , обратите внимание, что . не находится в текущем пути в большинстве систем. полный путь также предпочтителен здесь.

  2. myClass - это полный путь к пакету к классу, в примере предполагается, что myClass входит в пакет по умолчанию , что является плохой практикой, если оно во вложенном пакете это будет com.mycompany.mycode.myClass.

0 голосов
/ 13 ноября 2018

Это правильный способ выполнить .jar, и любой другой класс в этом .jar должен иметь main(), а параметры к нему следующие:

java -DLB="uk" -DType="CLIENT_IND" -jar com.fbi.rrm.rrm-batchy-1.5.jar
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...