Uruchom aplikację Java z wiersza poleceń

1. Przegląd

Zazwyczaj każda znacząca aplikacja zawiera jeden lub więcej plików JAR jako zależności. Jednak zdarza się, że sam plik JAR reprezentuje samodzielną aplikację lub aplikację internetową.

W tym artykule skoncentrujemy się na scenariuszu aplikacji autonomicznej. W dalszej części będziemy nazywać to aplikacją JAR.

W tym samouczku najpierw nauczymy się, jak utworzyć aplikację JAR. Później nauczymy się, jak uruchomić aplikację JAR z argumentami wiersza poleceń lub bez nich .

2. Utwórz aplikację JAR

Plik JAR może zawierać jedną lub więcej klas głównych. Każda klasa główna jest punktem wejścia do aplikacji . Zatem teoretycznie plik JAR może zawierać więcej niż jedną aplikację, ale musi zawierać co najmniej jedną główną klasę, aby mógł zostać uruchomiony.

Plik JAR może mieć jeden punkt wejścia ustawiony w pliku manifestu . W tym przypadku plik JAR jest plikiem wykonywalnym JAR. W tym pliku JAR musi znajdować się klasa główna.

Przede wszystkim zobaczmy szybki przykład, jak skompilować nasze klasy i utworzyć wykonywalny plik JAR z plikiem manifestu:

$ javac com/baeldung/jarArguments/*.java $ jar cfm JarExample.jar ../resources/example_manifest.txt com/baeldung/jarArguments/*.class

Niewykonywalny plik JAR to po prostu plik JAR, który nie ma zdefiniowanej klasy głównej w pliku manifestu. Jak zobaczymy później, nadal możemy uruchomić główną klasę zawartą w samym pliku JAR.

Oto jak utworzylibyśmy niewykonywalny plik JAR bez pliku manifestu:

$ jar cf JarExample2.jar com/baeldung/jarArguments/*.class

3. Argumenty wiersza poleceń języka Java

Podobnie jak każda aplikacja, aplikacja JAR przyjmuje dowolną liczbę argumentów, w tym zero argumentów. Wszystko zależy od potrzeb aplikacji.

Umożliwia to użytkownikowi określenie informacji konfiguracyjnych podczas uruchamiania aplikacji .

W rezultacie aplikacja może unikać wartości zakodowanych na stałe i nadal może obsługiwać wiele różnych przypadków użycia.

Argument może zawierać dowolne znaki alfanumeryczne, znaki Unicode i ewentualnie niektóre znaki specjalne dozwolone przez powłokę, na przykład „@”.

Argumenty są oddzielone co najmniej jedną spacją . Jeśli argument musi zawierać spacje, spacje należy ująć w cudzysłowy. Cudzysłowy pojedyncze lub podwójne działają dobrze.

Zwykle w przypadku typowej aplikacji Java podczas wywoływania aplikacji użytkownik wprowadza argumenty wiersza poleceń po nazwie klasy.

Jednak nie zawsze tak jest w przypadku aplikacji JAR.

Jak już omówiliśmy, główną metodą jest punkt wejścia głównej klasy Java. Te argumenty są ciąg y i są przekazywane do głównego metody jako łańcuchach tablicy.

To powiedziawszy, wewnątrz aplikacji możemy przekonwertować dowolny element tablicy String na inne typy danych, takie jak char , int , double , ich klasy opakowujące lub inne odpowiednie typy.

4. Uruchom wykonywalny plik JAR z argumentami

Zobaczmy podstawową składnię uruchamiania wykonywalnego pliku JAR z argumentami:

java -jar nazwa-pliku-jar [argumenty…]

Wykonywalny plik JAR utworzony wcześniej jest prostą aplikacją, która po prostu wypisuje przekazane argumenty. Możemy go uruchomić z dowolną liczbą argumentów. Poniżej znajduje się przykład z dwoma argumentami:

$ java -jar JarExample.jar "arg 1" [email protected] 

W konsoli zobaczymy następujące dane wyjściowe:

Hello Baeldung Reader in JarExample! There are 2 argument(s)! Argument(1):arg 1 Argument(2):[email protected] 

Dlatego przy wywoływaniu wykonywalnego pliku JAR nie musimy określać nazwy głównej klasy w wierszu poleceń . Po prostu dodajemy nasze argumenty po nazwie pliku JAR. Jeśli podamy nazwę klasy po nazwie pliku wykonywalnego JAR, stanie się ona po prostu pierwszym argumentem właściwej klasy głównej.

W większości przypadków aplikacja JAR to wykonywalny plik JAR. Wykonywalny plik JAR może mieć maksymalnie jedną główną klasę zdefiniowaną w pliku manifestu.

W związku z tym w pliku manifestu nie można ustawić innych aplikacji w tym samym wykonywalnym pliku JAR, ale nadal możemy je uruchamiać z wiersza poleceń, tak jak w przypadku niewykonywalnego pliku JAR. Dokładnie zobaczymy, jak to zrobić w następnej sekcji.

5. Uruchom niewykonywalny plik JAR z argumentami

Aby uruchomić aplikację w niewykonywalnym pliku JAR, musimy użyć opcji -cp zamiast -jar . Użyjemy opcji -cp (skrót od classpath), aby określić plik JAR zawierający plik klasy, który chcemy wykonać:

java -cp nazwa-pliku-jar-nazwa-klasy-głównej [argumenty…]

Jak widać, w tym przypadku będziemy musieli podać nazwę klasy głównej w wierszu poleceń, a po niej argumenty .

Niewykonywalny plik JAR utworzony wcześniej zawiera tę samą prostą aplikację. Możemy go uruchomić z dowolnymi (w tym zerowymi) argumentami. Oto przykład z dwoma argumentami:

$ java -cp JarExample2.jar com.baeldung.jarArguments.JarExample "arg 1" [email protected]

I tak jak widzieliśmy powyżej, zobaczymy następujący wynik:

Hello Baeldung Reader in JarExample! There are 2 argument(s)! Argument(1):arg 1 Argument(2):[email protected]

6. Wniosek

W tym samouczku poznaliśmy dwa sposoby uruchamiania aplikacji JAR w wierszu poleceń z argumentami lub bez.

Pokazaliśmy również, że argument może zawierać spacje i znaki specjalne (jeśli pozwala na to powłoka).

Jak zawsze, kod przykładów jest dostępny w serwisie GitHub.