Выполнить класс в файле 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
.