Vodič za stvaranje i pokretanje Jar datoteke na Javi

1. Pregled

Obično je prikladno grupirati mnoge datoteke Java klase u jednu arhivsku datoteku.

U ovom uputstvu ćemo pokriti sitnice rada s jarom - ili Java ARchive - datoteke na Javi.

Konkretno, uzet ćemo jednostavnu aplikaciju i istražiti različite načine pakiranja i pokretanja kao staklenke. Također ćemo odgovoriti na neke zanimljivosti poput kako lako pročitati datoteku manifesta jar Putem.

2. Postavljanje Java programa

Da bismo mogli stvoriti jar datoteku koja se može pokrenuti, naša aplikacija mora imati klasu s glavni metoda. Ova klasa pruža našu ulaznu točku u aplikaciju:

javna statička void glavna (String [] args) {System.out.println ("Hello Baeldung Reader!"); }

3. Zapovjedništvo jar

Sad kad smo svi postavljeni, kompajlirajmo naš kôd i stvorimo svoju jar datoteku.

To možemo učiniti s javac iz naredbenog retka:

javac com / baeldung / jar / *. java

The javac naredba stvara JarExample.class u com / baeldung / jar imenik. Sad to možemo spakirati u jar datoteku.

3.1. Korištenje zadanih postavki

Da bismo stvorili jar datoteku, upotrijebit ćemo staklenka naredba.

Da biste koristili staklenka naredbu za stvaranje jar datoteke, trebamo koristiti c opcija koja označava da stvaramo datoteku i f mogućnost navođenja datoteke:

jar cf JarExample.jar com / baeldung / jar / *. klasa

3.2. Postavljanje glavne klase

Korisno je da manifest jar datoteke uključuje glavnu klasu.

Manifest je posebna datoteka u staklenci koja se nalazi u META-INF imenik i imenovan NAJVIŠE.MF. Datoteka manifesta sadrži posebne meta informacije o datotekama unutar datoteke jar.

Neki primjeri za što možemo koristiti datoteku manifesta uključuju postavljanje ulazne točke, postavljanje podataka o verziji i konfiguriranje puta predavanja.

Korištenjem e opciju, možemo odrediti našu ulaznu točku i staklenka naredba će ga dodati u generiranu datoteku manifesta.

Trčimo staklenka s navedenom ulaznom točkom:

jar cfe JarExample.jar com.baeldung.jar.JarExample com / baeldung / jar / *. klasa

3.3. Ažuriranje sadržaja

Recimo da smo napravili promjenu u jednom od naših razreda i prekompilirali ga. Sada moramo ažurirati našu jar datoteku.

Iskoristimo staklenka naredba s u mogućnost ažuriranja njegovog sadržaja:

jar uf JarExample.jar com / baeldung / jar / JarExample.class

3.4. Postavljanje datoteke manifesta

U nekim ćemo slučajevima možda trebati imati veću kontrolu nad onim što se nalazi u našoj datoteci manifesta. The staklenka naredba pruža funkcionalnost za pružanje vlastitih podataka o manifestu.

Dodajmo djelomičnu datoteku manifesta s imenom example_manifest.txt našoj aplikaciji za postavljanje ulazne točke:

Glavna klasa: com.baeldung.jar.JarExample

Podaci o manifestu koje pružamo bit će dodani onome što generira naredba jar, tako da je to jedini redak koji trebamo u datoteci.

Važno je da našu datoteku manifesta završimo snova linija. Bez novog retka, naša će se datoteka manifesta tiho ignorirati.

Pomoću te postavke, kreirajmo svoju jar ponovo koristeći naše podatke o manifestu i m opcija:

jar cfm JarExample.jar com / baeldung / jar / example_manifest.txt com / baeldung / jar / *. klasa

3.5. Opširni izlaz

Ako želimo više informacija iz staklenka naredbu, možemo jednostavno dodati v opcija za opširno.

Pokrenimo svoje staklenka naredba s v opcija:

jar cvfm JarExample.jar com / baeldung / jar / example_manifest.txt com / baeldung / jar / *. klasa dodana manifest dodavanje: com / baeldung / jar / JarExample.class (in = 453) (out = 312) (deflacionirano 31% )

4. Korištenje Mavena

4.1. Zadana konfiguracija

Maven također možemo koristiti za izradu tegle. Budući da Maven favorizira konvenciju nad konfiguracijom, možemo samo pokrenuti paket za stvaranje naše jar datoteke.

mvn paket

Prema zadanim postavkama, naša će jar datoteka biti dodana u cilj mapa u našem projektu.

4.2. Označavanje glavne klase

Također možemo konfigurirati Maven da navede glavnu klasu i stvori izvršnu jar datoteku.

 org.apache.maven.plugins maven-jar-plugin $ {maven-jar-plugin.version} com.baeldung.jar.JarExample 

5. Korištenje Spring Boota

5.1. Korištenje Mavena i zadanih postavki

Ako koristimo Spring Boot s Mavenom, prvo bismo trebali potvrditi da je naša postavka pakiranja postavljena na staklenka rađe nego rat u našem pom.xml datoteka.

4.0.0 spring-boot jar spring-boot

Jednom kada znamo da je konfigurirano, možemo pokrenuti paket cilj:

mvn paket

5.2. Postavljanje ulazne točke

Postavljanje naše glavne klase je mjesto gdje pronalazimo razlike između stvaranja staklenke s uobičajenom Java aplikacijom i masne posude za Spring Boot aplikaciju. U aplikaciji Spring Boot glavna je klasa zapravo org.springframework.boot.loader.JarLauncher.

Iako naš primjer nije aplikacija Spring Boot, lako bismo je postavili kao aplikaciju za konzolu Spring Boot.

Naša glavna klasa trebala bi biti navedena kao početna klasa:

 com.baeldung.jar.JarExample 

Gradle također možemo koristiti za stvaranje staklenke masti Spring Boot.

6. Trčanje staklenke

Sad kad imamo svoju jar datoteku, možemo je pokrenuti. Datoteke jar pokrećemo pomoću Java naredba.

6.1. Izvođenje glavne klase

Budući da smo krenuli naprijed i osigurali da je naša glavna klasa navedena u manifestu, možemo koristiti -jar mogućnost Java naredba za pokretanje naše aplikacije bez navođenja glavne klase:

java -jar JarPrimjer.jar

6.2. Određivanje glavne klase

Također možemo odrediti glavnu klasu kada pokrećemo našu aplikaciju. Možemo koristiti -cp mogućnost da osiguramo da je naša jar datoteka u stazi razreda, a zatim pružimo našu glavnu klasu u paket.className format:

java -cp JarExample.jar com.baeldung.jar.JarExample

Upotreba separatora puta umjesto formata paketa također funkcionira:

java -cp JarExample.jar com / baeldung / jar / JarExample

6.3. Popis sadržaja staklenke

Možemo koristiti staklenka naredba za popis sadržaja naše jar datoteke:

jar tf JarExample.jar META-INF / META-INF / MANIFEST.MF com / baeldung / jar / JarExample.class

6.4. Pregled datoteke manifesta

Budući da može biti važno znati što je u našem NAJVIŠE.MF datoteku, pogledajmo brz i jednostavan način na koji možemo zaviriti u sadržaj bez napuštanja naredbenog retka.

Iskoristimo otvoriti rajsfešlus naredba s opcijom -p:

unzip -p JarExample.jar META-INF / MANIFEST.MF Manifest-Verzija: 1.0 Kreirao: 1.8.0_31 (Oracle Corporation) Glavna klasa: com.baeldung.jar.JarExample

7. Zaključak

U ovom uputstvu postavili smo jednostavan Java program s glavni razred.

Zatim smo pogledali tri načina stvaranja jar datoteka: pomoću staklenka naredba, s Mavenom i s Maven Spring Boot aplikacijom.

Nakon što smo kreirali jar datoteke, vratili smo se u naredbeni redak i pokrenuli ih s izvedenom i navedenom glavnom klasom.

Također smo naučili kako prikazati sadržaj datoteke i kako prikazati sadržaj jedne datoteke unutar staklenke.

I obični primjer Java i primjer Spring Boot dostupni su na GitHubu.