Mi az a JAR fájl?
A .jar kiterjesztésű fájl egy Java archív fájl, amely számos különböző alkalmazáshoz kapcsolódó fájlt tartalmaz egyetlen fájlként. Ezt a fájlformátumot azért hozták létre, hogy csökkentsék a letöltött Java kisalkalmazások böngészőbe történő betöltésének sebességét HTTP-tranzakción keresztül, elkerülve a több HTTP-kapcsolat létrehozását. Egyetlen JAR-fájl tartalmazhat Java osztályfájlokat (.class), images és hangokat. A JAR-fájlon belüli egyes elemeket az alkalmazás fejlesztője digitálisan aláírhatja eredetük hitelesítése érdekében. A JAR-fájlokat rendszeresen használják olyan funkcionális API-k létrehozására, amelyek az adott API-hoz kapcsolódó speciális funkciókat tartalmaznak.
JAR fájlformátum
A JAR-fájlok a népszerű ZIP-fájlformátumon alapulnak, amely egyetlen fájlban archiválja az egyes tartalomfájlokat. A JAR fájlformátum támogatja a tömörítést, ami kisebb fájlméretet eredményez a letöltéshez, és így tovább javítja a letöltési időt. Az Oracle JAR-fájlspecifikációi cikkben részletesen ismertetjük a JAR-fájlok belső specifikációit.
A Manifest fájl
JAR-fájl létrehozásakor automatikusan létrejön benne egy jegyzékfájl, amely tartalmazza a JAR-fájl tartalmára vonatkozó metaadat-információkat. Ez a fájl a JAR-fájlba csomagolt tartalmat mutatja. Egy tipikus Manifest fájl a következőképpen néz ki, amely a JAR fájlban található mappákat és osztályokat mutatja.
META-INF/
META-INF/MANIFEST.MF
pack/
pack/class1.class
pack/class2.class
..
..
Manifest Specifikációk
A manifeszt specifikációkat az Oracle az alábbiak szerint határozza meg.
manifest-file
: főszakasz újsor *individual-section
main-section
: verzió-információ újsor *fő-attribútum
version-info
: Manifest-Version : verziószám
verziószám
: számjegy+{.számjegy+}*
main-attribute
: (bármilyen legitim fő attribútum) újsor
individual-section
: Név : érték újsor *perentry-attribute
perentry-attribute
: (bármilyen jogos perentry attribútum) újsor
új sor
: CR LF | LF | CR (nem követi az LF)
digit
: {0-9}
Futtatható JAR
A JAR-fájlok tartalmazhatnak olyan alkalmazást is, amelyet a Java Virtual Machine (JVM) futtathat, hasonlóan a Microsoft Windows operációs rendszer bármely más alkalmazásához. Ebben az esetben a JVM-nek tudnia kell az alkalmazás belépési pontjáról, amely bármely nyilvános static void main metódussal rendelkező osztály. A jegyzékfájl egy ilyen osztályt a „Main-Class” fejléccel azonosít a következő formátumban:
Main-Class: com.example.MyClassName