Különbségek a JAR és a WAR csomagolás között

1. Áttekintés

Ebben a gyors bemutatóban a Java JAR és WAR csomagolásának különbségeire fogunk összpontosítani.

Először külön-külön meghatározzuk az egyes csomagolási lehetőségeket. Utána összefoglaljuk különbségeiket.

2. JAR csomagolás

Egyszerűen fogalmazva, a JAR - vagy Java Archive - egy csomag fájlformátum. A JAR fájlok rendelkeznek a .befőttes üveg kiterjesztést tartalmazhat könyvtárak, erőforrások és metaadat fájlok.

Lényegében egy tömörített fájl, amely a .osztály a lefordított Java könyvtárak és alkalmazások fájljai és erőforrásai.

Például itt van egy egyszerű JAR fájlstruktúra:

META-INF / MANIFEST.MF com / baeldung / MyApplication.class 

A META-INF / MANIFEST.MF a fájl további metaadatokat tartalmazhat az archívumban tárolt fájlokról.

Hozhatunk létre JAR fájlt a befőttes üveg parancs vagy olyan eszközökkel, mint Maven.

3. WAR csomagolás

A WAR a Web Application Archive vagy a Web Application Resource rövidítést jelenti. Ezeknek az archív fájloknak a .háború kiterjesztés és vannak webalkalmazások csomagolására használják hogy bármely Servlet / JSP tárolóba telepíthetjük.

Íme egy példa egy tipikus WAR fájlstruktúra elrendezésére:

META-INF / MANIFEST.MF WEB-INF / web.xml jsp / helloWorld.jsp osztályok / static / templates / application.properties lib / // * .jar fájlok lib-ként

Belül van egy META-INF könyvtár, amely hasznos információkat tartalmaz a MANIFEST.MF a webarchívumról. A META-INF könyvtár privát és kívülről nem érhető el.

Másrészt tartalmazza a WEB-INF nyilvános könyvtár az összes statikus webes erőforrással, beleértve a HTML oldalakat, képeket és JS fájlokat. Sőt, tartalmazza a web.xml fájl, szervlet osztályok és könyvtárak.

Használhatjuk ugyanazokat az eszközöket és parancsokat, mint amilyeneket a JAR elkészítéséhez használtunk a .háború archívum.

4. Főbb különbségek

Tehát mi a legfontosabb különbség e két archívumtípus között?

Az első és legkézenfekvőbb különbség a fájlkiterjesztés. A JAR-oknak van .befőttes üveg kiterjesztés, míg a WAR fájl rendelkezik .háború kiterjesztés.

A második fő különbség az céljuk és működésük módja. A JAR fájlok lehetővé teszik számunkra több fájl csomagolását annak érdekében, hogy könyvtárként, bővítményként vagy bármilyen alkalmazásként használhassuk őket. Másrészt a WAR fájlokat csak webalkalmazásokhoz használják.

A levéltárak szerkezete is eltérő. Bármilyen kívánt szerkezetű JAR-t létrehozhatunk. Ezzel szemben a WAR előre definiált szerkezettel rendelkezik WEB-INF és META-INF könyvtárakat.

Végül megtehetjük futtasson egy JAR-t a parancssorból ha futtatható JAR-ként építjük fel további szoftver használata nélkül. Vagy használhatjuk könyvtárként. Ezzel szemben mi szerverre van szükségük a WAR végrehajtásához.

5. Következtetés

Ebben a gyors cikkben összehasonlítottuk a .befőttes üveg és .háború Java csomagolási típusok. Ennek során azt is megjegyeztük, hogy bár mindkettő ugyanazt a ZIP fájlformátumot használja, számos fontos különbség van.