Выполнить класс в файле Jar

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

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

Ответ 1

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

  • Если класс не находится в пакете, просто java -cp myjar.jar myClass.

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

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

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

    • В Windows:

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

Ответ 2

Вы хотите:

java -cp myJar.jar myClass

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

C:> java -classpath C:\java\MyClasses\myclasses.jar utility.myapp.Cool

Ответ 3

Это два типа JAR файла, доступные в java

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

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

Ответ 4

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

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

java -cp ./myJar.jar myClass

Где:

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

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