Запустить класс в файле Jar
Если у вас есть файл с именем jar myJar.jar
находится в /myfolder, и вы хотите использовать класс под названием myClass
Исходя из этого, как вы делаете это из командной строки?
Я думал, что это будет пойти в каталог и сказать java -cp myJar.jar.myClass
но это не работает Любая помощь будет оценена.
5 ответов
Использование 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
Ты хочешь:
java -cp myJar.jar myClass
Документация приводит следующий пример:
C:> java -classpath C:\java\MyClasses\myclasses.jar utility.myapp.Cool
Есть два типа файлов JAR, доступных в Java:
Выполняемый / исполняемый файл JAR, который содержит файл манифеста. Для запуска Runnable Jar вы можете использовать
java -jar fileName.jar
или жеjava -jar -classpath abc.jar fileName.jar
Простой jar-файл, который не содержит файл манифеста, поэтому вы просто запускаете свой основной класс, указывая его путь
java -cp ./fileName.jar MainClass
Предполагая, что вы находитесь в каталоге, где myJar.jar
файл и что myClass
имеет public static void main()
метод на это:
Вы используете следующую командную строку:
java -cp ./myJar.jar myClass
Куда:
myJar.jar
находится в текущем пути, обратите внимание, что.
не в текущем пути на большинстве систем. Здесь также предпочтительней полный путь.myClass
это полный путь пакета к классу, пример предполагает, чтоmyClass
находится в пакете по умолчанию, что является плохой практикой, если он находится во вложенном пакете, он будетcom.mycompany.mycode.myClass
,
Это правильный способ выполнить .jar
и любой другой класс в этом .jar
должен иметь main()
и следующие параметры к нему:
java -DLB="uk" -DType="CLIENT_IND" -jar com.fbi.rrm.rrm-batchy-1.5.jar