JAR- ja WAR-pakkausten erot

Yleiskatsaus

Tässä pikaoppaassa keskitymme JAR- ja WAR-pakkausten eroihin Javassa.

Ensin määrittelemme jokaisen pakkausmuodon erikseen. Sen jälkeen teemme yhteenvedon niiden eroista.

JAR-pakkaaminen

Lyhyesti sanottuna JAR eli Java-arkisto on pakettitiedostomuoto. JAR-tiedostoilla on .jar-pääte, ja ne voivat sisältää kirjastoja, resursseja ja metatietotiedostoja.

Ltse asiassa kyseessä on pakattu tiedosto, joka sisältää pakattuja versioita .class-tiedostoista ja resursseja käännetyistä Java-kirjastoista ja -sovelluksista.

Esimerkiksi seuraavassa on yksinkertainen JAR-tiedoston rakenne:

META-INF/ MANIFEST.MFcom/ baeldung/ MyApplication.class

The META-INF/MANIFEST.MF-tiedosto voi sisältää muita metatietoja arkistoon tallennetuista tiedostoista.

JAR-tiedoston voi luoda jar-komennolla tai Mavenin kaltaisilla työkaluilla.

WAR-pakkaus

WAR on lyhenne sanoista Web Application Archive (verkkosovellusarkisto) tai Web Application Resource (verkkosovellusresurssi). Näillä arkistotiedostoilla on .war-pääte, ja niitä käytetään paketoimaan web-sovelluksia, jotka voimme ottaa käyttöön millä tahansa Servlet/JSP-säiliöllä.

Tässä on esimerkkiasettelu tyypillisestä WAR-tiedostorakenteesta:

Sisällä on META-INF-hakemisto, joka sisältää MANIFEST.MF:ssä hyödyllistä tietoa web-arkistosta. META-INF-hakemisto on yksityinen, eikä siihen pääse käsiksi ulkopuolelta.

Toisaalta se sisältää myös julkisen WEB-INF-hakemiston, jossa on kaikki staattiset web-resurssit, kuten HTML-sivut, kuvat ja JS-tiedostot. Lisäksi se sisältää web.xml-tiedoston, servlet-luokat ja kirjastot.

Voidaan käyttää .war-arkiston rakentamiseen samoja työkaluja ja komentoja, joita käytimme JAR-arkiston rakentamiseen.

Keskeiset erot

Mitkä ovat siis näiden kahden arkistotyypin keskeiset erot?

Ensimmäinen ja ilmeisin ero on tiedostopääte. JAR-tiedostoilla on .jar-pääte, kun taas WAR-tiedostolla on .war-pääte.

Toinen keskeinen ero on niiden tarkoitus ja toimintatapa. JAR-tiedostojen avulla voimme paketoida useita tiedostoja, jotta voimme käyttää niitä kirjastona, lisäosana tai minkä tahansa sovelluksen muodossa. Toisaalta WAR-tiedostoja käytetään vain verkkosovelluksiin.

Arkistojen rakenne on myös erilainen. Voimme luoda JAR-arkiston haluamallamme rakenteella. Sitä vastoin WAR-arkistolla on valmiiksi määritelty rakenne, jossa on WEB-INF- ja META-INF-hakemistot.

Viimeiseksi voimme ajaa JAR-arkistoa komentoriviltä, jos rakennamme sen suoritettavaksi JAR-arkistoksi ilman lisäohjelmia. Tai voimme käyttää sitä kirjastona. WAR:n suorittamiseen sen sijaan tarvitsemme palvelimen.

Johtopäätös

Tässä pika-artikkelissa vertailimme .jar- ja .war- Java-pakkaustyyppejä. Samalla totesimme myös, että vaikka molemmat käyttävät samaa ZIP-tiedostomuotoa, niissä on useita tärkeitä eroja.

Aloita Spring 5:n ja Spring Boot 2:n käyttö Opi Spring -kurssin avulla:

>> KATSO KURSSI

Vastaa

Sähköpostiosoitettasi ei julkaista.