it-swarm.com.ru

Запустить класс в файле Jar

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

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

149
jim

Используйте 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

224
Bitmap

Ты хочешь:

Java -cp myJar.jar myClass

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

C:> Java -classpath C:\Java\MyClasses\myclasses.jar utility.myapp.Cool
21
Richard Campbell

Есть два типа файлов JAR, доступных в Java:

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

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

15
Gaurav Singh

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

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

Java -cp ./myJar.jar myClass

Куда:

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

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

5
user177800

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

Java -DLB="uk" -DType="CLIENT_IND" -jar com.fbi.rrm.rrm-batchy-1.5.jar
0
ubersucks