Java Archívum

A Java Archive (köznyelvben JAR fájl miatt a fájl kiterjesztését ) szervezésére használjuk, terjesztésére, és osztálykönyvtáraknak és futtatható programokat hoztak létre a Java programozási nyelv . Gyakorlatilag egy tömörített fájl ZIP formátumban. Az archívum lefordított Java osztályokat ( bytecode ) és esetleg más erőforrásokat tartalmaz. Általában egy vagy több metaadatú fájlt is tartalmaz . Ezek előre definiált nevekkel és struktúrákkal rendelkeznek, és a könyvtárban találhatók META-INF. A tipikus fájlt META-INF/MANIFEST.MFa Manifest szakasz ismerteti részletesebben. Az archívum rövid neve úgy értelmezhető, mint az angol jar szóval (németül: "edény") játszott szó .

használat

A JAR fájlokat eredetileg azért vezették be, hogy a Java kisalkalmazások által megkövetelt Java osztályokat ne kelljen külön-külön feltölteni a hálózatról. Sok osztály egy fájlba történő átvitele hatékonyabb, és ezen felül a fájlok tömöríthetők .

A "manifeszt" fájl segítségével meghatározható a Java alkalmazás indítása. Ez azt jelenti, hogy az alkalmazás grafikus felhasználói felületeken is elindítható, például Windows , Mac OS X vagy KDE a parancssori segítség nélkül (feltéve, hogy .jara megfelelő parancsot rendelték a fájlkiterjesztéshez ). Ezzel java -jarelindíthatja a JAR fájlokat a parancssorból . A JAR archívumok a fájlneveket belsőleg tárolják az UTF-8 kódolásban, így ezek tartalmazhatnak umlautokat is. A JAR-ok vagy Java-programok futtatásának előfeltétele mindig a telepített Java Runtime Environment .

A JAR fájlok a JDK jar parancsával hozhatók létre (amely a tar szintaxist használja), vagy ha a fájlnevek csak ASCII karaktereket tartalmaznak, bármely ZIP programmal. Ezenkívül a Java Platform Standard Edition a két csomagban a „java.util.jar” és „java.util.zip” osztályokat kínálja JAR vagy ZIP archívumok olvasására vagy létrehozására.

Például a következő parancs megjeleníti a test.jar nevű JAR fájl tartalmát .

jar tvf test.jar

Ebben az esetben a levél t a „Tartalom megtekintése” (az angol t képes tartalomjegyzék ), v bőbeszédű kimenet (angol v erbose ) és f kimondja, hogy (angol fájlból f ile ) úgy kell olvasni, akinek a neve a következőképpen .

nyilvánvaló

Minden Java archívum különféle információkat nyújthat a "META-INF" könyvtárban található archívum tartalmáról a "MANIFEST.MF" nevű fájl segítségével. A legfontosabb metainformációk tartalmazzák

Ez a jegyzékfájl egy egyszerű vonal-orientált szövegfájl, amely több név- és értékpárot tartalmaz, amelyek mindegyike meghatároz egy úgynevezett attribútumot . Az attribútum a teljes alkalmazás, az osztálykönyvtár vagy akár egyetlen Java csomag ( csomag ) vagy egyetlen osztály tulajdonsága . Ezenkívül több szakaszra ( szakaszokra osztva) van felosztva.

Az első részt fő szakasznak nevezzük, és meghatározza azokat az attribútumokat, amelyek a teljes Java archívumra vonatkoznak. Mindig a „Manifest Version” attribútum meghatározásával kezdődik, míg a többi attribútum nem kötelező. A következő szakaszok egy-egy csomagra vagy osztályra vonatkoznak, és választhatóak, csakúgy, mint a bennük található attribútumok. Az ismeretlen attribútumokat figyelmen kívül hagyják, és nem vezetnek hibaüzenetekhez. Ha a fő szakaszban és az egyes szakaszokban is meg van határozva egy attribútum, akkor az egyes szakaszokban megadott értékek átfedik a fő szakaszban előre megadott értéket ahhoz az összetevőhöz (csomag vagy osztály), amelyhez a szakasz kapcsolódik.

példa

Az alábbi példa a Java 1.4 futásidejű környezetben található „rt.jar” fájl jegyzékének egy részletét mutatja be.

Manifest-Version: 1.0
Specification-Title: Java Platform API Specification
Created-By: 1.4.2_05 (Sun Microsystems Inc.)
Implementation-Title: Java Runtime Environment
Specification-Vendor: Sun Microsystems, Inc.
Specification-Version: 1.4
Implementation-Version: 1.4.2_05
Implementation-Vendor: Sun Microsystems, Inc.

Name: javax/swing/JRadioButtonMenuItem.class
Java-Bean: True

Name: javax/swing/JList.class
Java-Bean: True

A példa fő szakasza azt mutatja, hogy ez a jegyzék a Sun Microsystems JAR fájlspecifikációjának 1. verziójában leírtak szerint készült (eddig csak egy). A fő szakasz további attribútumai a könyvtár által teljesített specifikációról , a Java archívum készítőjéről, a megvalósítás nevéről, valamint a használt specifikáció és az abban szereplő implementáció gyártóiról és változatáról nyújtanak információt. A példa következő két szakasza egy-egy JavaBeanként megjelölt osztályra vonatkozik .

Származtatott formátumok

A JAR formátum további specializációi például a WAR fájlok ( Web Application Archive ), EAR fájlok ( Enterprise Application Archive ) vagy OpenDocument fájlok.

segédprogramok

A Java Development Kit számos programot tartalmaz a JAR fájlok kezelésére:

befőttes üveg
A jar egy olyan program JAR fájlok létrehozására, módosítására és kicsomagolására, amelyek paraméterei hasonlóak a jól ismert Unix program tar programjához.
tégelyes
A jarsigner egy olyan program, amely aláírja a JAR fájlokat és ellenőrzi azok elektronikus aláírását.
200 csomag
A pack200 a JAR fájlokat olyan formátumra konvertálja, amely hatékonyabban képes tárolni a bájtkódot. A Java 5-ben vezették be, és különösen a Java Web Startnál használják , mivel szükség lehet nagy mennyiségű fájl átvitelére az interneten keresztül . Az átalakítás az unpack200 programmal történik .

A JDK-ban nem szereplő JAR fájlok programozási eszközei:

ProGuard
A ProGuard egy program a JAR fájlok tömörítésére, optimalizálására és elhomályosítására . Ez a bájtkód részletesebb elemzésével érhető el .
csomagoló
Ha az archívumban található fájlnevek ASCII karakterekből állnak, a JAR fájlokat bármilyen szoftvereszközzel szerkeszthetik, amelyek a ZIP fájlokat is szerkeszthetik. Néhány példa az adattömörítő programok listájában található .

web Linkek