Wie erstellt man ein Java Archiv (JAR)?
JAR ist ein Java-eigener Archivtyp, der ähnlich wie ZIP-Archive mehrere Dateien unterschiedlicher Art in einer Datei vereint und komprimiert. Dies hat einerseits den Vorteil, dass die Größe eines Java Archives kleiner ist als die Gesamtgröße aller in ihm enthaltenen Dateien. Andererseits gibt es nunmehr nur noch eine Datei, d.h. dass beispielsweise im Falle eines Applets nur noch ein HTTP-Request für die Übertragung des Applets samt aller Icons und sonstigen Dateien stattfindet, wodurch die Ladezeit - je nach Applet - erheblich reduziert wird.
Java Archive bieten jedoch noch andere wesentliche Features: Ist eine Java-Applikation in einem Java Archiv zusammengefasst, lässt sich diese über einen Doppelklick starten, sofern z.B. unter Windows kein Packprogramm wie etwa WinZip oder WinRar die Endung .jar für sich registriert hat und eine Manifest-Datei vorhanden ist (dazu später mehr). Schlägt der Doppelklick auf eine JAR-Datei fehl, startet die Applikation also nicht, so lohnt sich ein Blick in die Windows-Registry. Dazu geht man wiefolgt vor:
- Über den Start-Button auf Ausführen gehen
- In das Feld regedit eingeben
- Den Knoten HKEY_CLASSES_ROOT und dort den Eintrag .jar wählen
- Doppelklick auf den Eintrag (Standard) ausführen und jarfile eingeben
- Die Änderung bestätigen und regedit schließen
Java Archive lassen sich auch »von Hand« starten. Geben Sie dazu folgende Zeile in der Eingabekonsole (z.B. DOS) ein:
Listing 1: Starten eines Java Archives aus der Eingabekonsole heraus
Doch nun zur Erstellung eines eigenen Java Archives: Zunächst sollte man die Eingabekonsole starten und sich in den Ordner mit den CLASS-Dateien begeben, die man im JAR-File archivieren möchte. Dort angelangt, startet man mit dem Aufruf jar das JAR-Tool aus dem Java Development Kit.
Listing 2: Aufbau einer Anweisung an das JAR-Tool (Parameter in doppelten Klammern sind optional)
Dem Aufruf des JAR-Tools folgen stets unmittelbar verschiedenen Parametern. Zur Auswahl stehen dabei:
Listing 3: Mögliche Parameter des JAR-Tools
- c
- create: Erzeugt ein neues Java Archiv. Darf nicht zusammen mit t oder x verwendet werden.
- t
- table of contents: Gibt ein Inhaltsverzeichnis des Archives aus. Darf nicht zusammen mit c oder x verwendet werden.
- x
- extract: Extrahiert eine nachgestellte Datei aus dem Archiv. Darf nicht mit c oder t verwendet werden.
- u
- update: Fügt die nachfolgende Datei in ein bestehendes Archiv ein.
- f
- followed: Gibt an, dass der nächste Parameter die Archivdatei ist.
- v
- verbose: Gibt zusätzliche Informationen aus.
Eine einfache Anweisung, ein Java Archiv namens MeinJarfile.jar aus den im selben Ordner befindlichen Klassen JarTest1.class und JarTest2.class zu erstellen, würde demnach wiefolgt aussehen:
Listing 4: Packen von zwei Java-Klassen in ein Java Archiv
Ein komplexeres Beispiel zeigt nun die Erstellung eines Java Archives, welches alle CLASS- und TXT-Dateien aus dem aktuellen Ordner sowie den Unterordnern texte und cls beinhalten soll:
Listing 5: Archivieren aller CLASS- und TXT-Dateien inklusive Unterordner
Manchmal ist es notwendig, weitere Informationen für die Java Virtual Machine in einem Java Archiv einzubetten, beispielsweise welche Java-Klasse die Main-Funktion enthält oder welche anderen Java Archive mit eingebunden werden sollen. Dazu gibt es die so genannten Manifest-Dateien. Sie wird als einfache Text-Datei erstellt und beim Aufruf des JAR-Tools mit dem Parameter m und mit ihrem Namen, der üblicherweise Manifest lautet, übergeben:
Listing 6: Archivieren aller CLASS- und TXT-Dateien inklusive Unterordner mit Manifest-Datei
Damit die Klasse Start.class bei einem Doppelklick auf das Java Archiv zuerst ausgeführt und ein weiteres Archiv namens AnderesJarfile.jar mit einbezogen wird, könnte die Manifest-Datei nun beispielsweise wiefolgt aussehen:
Listing 7: Manifest-Datei mit Festlegung der auszuführenden Klasse und eines einzubindenden JAR-Files
Class-Path: AnderesJarfile.jar
Um das Arbeiten mit Java Archiven zu vereinfachen, habe ich die Anwendung Jarkive entwickelt, die Sie kostenlos herunterladen und nutzen können.