Pokrenite Java aplikaciju iz naredbenog retka

1. Pregled

Obično svaka značajna aplikacija uključuje jednu ili više JAR datoteka kao ovisnosti. Međutim, ponekad JAR datoteka sama predstavlja samostalnu aplikaciju ili web aplikaciju.

U ovom ćemo se članku usredotočiti na samostalni scenarij primjene. U nastavku ćemo ga nazivati ​​JAR aplikacijom.

U ovom uputstvu prvo ćemo naučiti kako stvoriti JAR aplikaciju. Kasnije ćemo naučiti kako pokrenite JAR aplikaciju sa ili bez argumenata naredbenog retka.

2. Stvorite a JAR Primjena

JAR datoteka može sadržavati jednu ili više glavnih klasa. Svaka glavna klasa je ulazna točka aplikacije. Dakle, teoretski, JAR datoteka može sadržavati više od jedne aplikacije, ali mora sadržavati najmanje jednu glavnu klasu da bi se mogla pokrenuti.

JAR datoteka može imati jednu ulaznu točku postavljenu u svojoj datoteci manifesta. U ovom je slučaju JAR datoteka izvršna JAR datoteka. Glavna klasa mora biti uključena u tu JAR datoteku.

Prije svega, pogledajmo brzi primjer kako kompajlirati naše klase i stvoriti izvršni JAR s manifestnom datotekom:

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

Neizvršna JAR je jednostavno JAR datoteka koja nema Glavna klasa definirano u datoteci manifesta. Kao što ćemo vidjeti kasnije, još uvijek možemo pokrenuti glavnu klasu koja se nalazi u samoj JAR datoteci.

Evo kako bismo stvorili neizvršni JAR bez datoteke manifesta:

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

3. Argumenti Java naredbenog retka

Kao i svaka aplikacija, i JAR aplikacija prihvaća bilo koji broj argumenata, uključujući nula argumenata. Sve ovisi o potrebi aplikacije.

To omogućuje korisniku da navedite podatke o konfiguraciji prilikom pokretanja aplikacije.

Kao rezultat toga, aplikacija može izbjeći kodirane vrijednosti i još uvijek može obraditi mnogo različitih slučajeva korištenja.

Argument može sadržavati bilo koje alfanumeričke znakove, unicode znakove i možda neke posebne znakove dopuštene ljuskom, na primjer ‘@’.

Argumenti su odvojeni jednim ili više razmaka. Ako argument mora sadržavati razmake, razmaci moraju biti zatvoreni između navodnika. Jednostavni ili dvostruki navodnici dobro funkcioniraju.

Obično, za tipični Java program, prilikom pozivanja aplikacije korisnik unosi argumente naredbenog retka nakon naziva klase.

Međutim, to nije uvijek slučaj za JAR aplikacije.

Kao što smo već razgovarali, ulazna točka glavne klase Java glavna je metoda. The argumenti su svi Nizs i prenose se na glavnu metodu kao a Niz niz.

To je rekao, unutar aplikacije, možemo pretvoriti bilo koji element Niz niz za druge vrste podataka, kao što je ugljen, int, dvostruko, njihova klase omota, ili druge odgovarajuće vrste.

4. Pokrenite izvršnu datoteku JAR s argumentima

Pogledajmo osnovnu sintaksu za pokretanje izvršne JAR datoteke s argumentima:

java -jar jar-ime-datoteke [args ...]

Ranije stvorena izvršna JAR jednostavna je aplikacija koja samo ispisuje predane argumente. Možemo je pokrenuti s bilo kojim brojem argumenata. Ispod je primjer s dva argumenta:

$ java -jar JarExample.jar "arg. 1" [e-pošta zaštićena] 

U konzoli ćemo vidjeti sljedeći izlaz:

Pozdrav Baeldung Reader u JarExample! Postoje 2 argumenta! Argument (1): argument 1 Argument (2): [zaštićen e-poštom] 

Tako, prilikom pozivanja izvršnog JAR-a, ne trebamo navesti glavno ime klase na naredbenom retku. Naše argumente jednostavno dodajemo nakon naziva JAR datoteke. Ako dodamo ime klase nakon imena izvršne JAR datoteke, to jednostavno postaje prvi argument stvarnoj glavnoj klasi.

Najčešće je JAR aplikacija izvršni JAR. Izvršni JAR može imati najviše jednu glavnu klasu definiranu u datoteci manifesta.

Slijedom toga, druge se aplikacije u istoj izvršnoj JAR datoteci ne mogu postaviti u datoteci manifesta, ali ih svejedno možemo pokrenuti iz naredbenog retka, baš kao i za neizvršive JAR-ove. Točno ćemo vidjeti u sljedećem odjeljku.

5. Pokrenite neizvršnu datoteku JAR s argumentima

Da bismo pokrenuli aplikaciju u neizvršnoj JAR datoteci, moramo je koristiti -cp opcija umjesto -jar. Koristit ćemo -cp opcija (skraćenica od classpath) za određivanje JAR datoteke koja sadrži datoteku klase koju želimo izvršiti:

java -cp ime-datoteke-datoteke ime glavne klase [args ...]

Kao što vidiš, u ovom slučaju morat ćemo u naredbeni redak uključiti ime glavne klase, nakon čega slijede argumenti.

Neizvršivi JAR stvoren ranije sadrži istu jednostavnu aplikaciju. Možemo ga pokrenuti s bilo kojim (uključujući nula) argumentima. Evo primjera s dva argumenta:

$ java -cp JarExample2.jar com.baeldung.jarArguments.JarExample "arg 1" [e-pošta zaštićena]

I, baš kao što smo vidjeli gore, vidjet ćemo sljedeći izlaz:

Pozdrav Baeldung Reader u JarExample! Postoje 2 argumenta! Argument (1): argument 1 Argument (2): [zaštićen e-poštom]

6. Zaključak

U ovom uputstvu naučili smo dva načina pokretanja JAR aplikacije na naredbenom retku sa ili bez argumenata.

Također smo pokazali da argument može sadržavati razmake i posebne znakove (kada ljuska dopušta).

Kao i uvijek, kod za primjere dostupan je na GitHub-u.