Jeśli masz plik jar o nazwie myJar.jar
znajdujący się w / myfolder i chcesz użyć wywołanej myClass
z niego klasy , jak możesz to zrobić z wiersza poleceń?
Myślałem, że wejdę do katalogu i powiesz, java -cp myJar.jar.myClass
ale to nie działa. Każda pomoc będzie mile widziana.
java
command-line
jar
jim
źródło
źródło
java -cp myJar.jar myClass
dla mnie działa dobrze - czy masz fałszywy okres w linii poleceń zamiast spacji?Odpowiedzi:
Użyj
java -cp myjar.jar com.mypackage.myClass
.Jeśli klasa nie znajduje się w pakiecie, po prostu
java -cp myjar.jar myClass
.Jeśli nie znajdujesz się w katalogu, w którym się
myJar.jar
znajduje, możesz zrobić:Na platformach Unix lub Linux:
java -cp /location_of_jar/myjar.jar com.mypackage.myClass
W systemie Windows:
java -cp c:\location_of_jar\myjar.jar com.mypackage.myClass
źródło
Chcesz:
Dokumentacja podaje następujący przykład:
źródło
W Javie dostępne są dwa typy plików JAR:
Runnable / Executable jar, który zawiera plik manifestu. Aby uruchomić słoik Runnable, możesz użyć
java -jar fileName.jar
lubjava -jar -classpath abc.jar fileName.jar
Prosty plik jar, który nie zawiera pliku manifestu, więc wystarczy uruchomić główną klasę, podając jej ścieżkę
java -cp ./fileName.jar MainClass
źródło
Zakładając, że jesteś w katalogu, w którym
myJar.jar
znajduje się plik i którymyClass
zawierapublic static void main()
metodę:Używasz następującego wiersza poleceń:
Gdzie:
myJar.jar
znajduje się w bieżącej ścieżce , zauważ, że.
nie znajduje się w bieżącej ścieżce w większości systemów. W tym przypadku preferowana jest również w pełni kwalifikowana ścieżka .myClass
jest w pełni kwalifikowaną ścieżką pakietu do klasy, przykład zakłada, żemyClass
znajduje się w pakiecie domyślnym, co jest złą praktyką, jeśli jest w pakiecie zagnieżdżonym, tak by byłocom.mycompany.mycode.myClass
.źródło
To jest właściwy sposób wykonania a
.jar
, i niezależnie od tego, jaka klasa.jar
powinna mieć,main()
a następujące parametry to:źródło