Áttekintés
Ez a gyors bemutató a JAR- és WAR-csomagolás közötti különbségekre összpontosít a Java-ban.
Először is, külön-külön definiáljuk az egyes csomagolási lehetőségeket. Ezután összefoglaljuk a különbségeket.
JAR csomagolás
Egyszerűen fogalmazva, a JAR – vagy Java Archive – egy csomagfájlformátum. A JAR fájlok .jar kiterjesztéssel rendelkeznek, és tartalmazhatnak könyvtárakat, erőforrásokat és metaadatfájlokat.
Lényegében egy zippelt fájl, amely a lefordított Java könyvtárak és alkalmazások .class fájljainak és erőforrásainak tömörített változatait tartalmazza.
Itt van például egy egyszerű JAR fájlszerkezet:
META-INF/ MANIFEST.MFcom/ baeldung/ MyApplication.class
A META-INF/MANIFEST.MF fájl további metaadatokat tartalmazhat az archívumban tárolt fájlokról.
JAR fájlt a jar parancs segítségével vagy olyan eszközökkel hozhatunk létre, mint a Maven.
WAR csomagolás
AWAR a Web Application Archive vagy Web Application Resource rövidítése. Ezek az archívumfájlok .war kiterjesztéssel rendelkeznek, és webalkalmazások csomagolására szolgálnak, amelyeket bármilyen Servlet/JSP konténeren telepíthetünk.
Itt egy tipikus WAR fájlszerkezet példaszerkezete:
Bent van egy META-INF könyvtár, amely a MANIFEST.MF-ben hasznos információkat tartalmaz 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árat is, amely az összes statikus webes erőforrást tartalmazza, beleértve a HTML oldalakat, képeket és JS fájlokat. Ezenkívül tartalmazza a web.xml fájlt, a szervlet osztályokat és a könyvtárakat.
A .war archívum létrehozásához ugyanazokat az eszközöket és parancsokat használhatjuk, amelyeket a JAR létrehozásához használtunk.
Főbb különbségek
Melyek tehát a legfontosabb különbségek e két archívumtípus között?
Az első és legnyilvánvalóbb különbség a fájlkiterjesztés. A JAR-ok .jar kiterjesztésűek, míg a WAR-fájlok .war kiterjesztésűek.
A második fő különbség a céljuk és a működésük módja. A JAR fájlok lehetővé teszik számunkra, hogy több fájlt csomagoljunk, hogy azt könyvtárként, bővítményként vagy bármilyen alkalmazásként használhassuk. Ezzel szemben a WAR fájlokat csak webes alkalmazásokhoz használják.
Az archívumok felépítése is eltérő. Bármilyen kívánt struktúrájú JAR-t létrehozhatunk. Ezzel szemben a WAR-nak előre meghatározott szerkezete van WEB-INF és META-INF könyvtárakkal.
Végül egy JAR-t a parancssorból is futtathatunk, ha futtatható JAR-ként készítjük el, további szoftverek használata nélkül. Vagy használhatjuk könyvtárként is. Ezzel szemben egy WAR futtatásához szerverre van szükségünk.
Következtetés
Ebben a gyors cikkben összehasonlítottuk a .jar és .war Java csomagolási típusokat. Ennek során azt is megállapítottuk, hogy bár mindkettő ugyanazt a ZIP fájlformátumot használja, számos fontos különbség van.
Kezdje meg a Spring 5 és a Spring Boot 2 használatát a Tanulj Spring tanfolyamon keresztül:
>> KERESSE MEG A TANFOLYAMOT