B.3 | jar |
jar istein Programm, das es ermöglicht, mehrere Dateien (insbesondere .class-Dateien) zu einem Archiv zusammenzufassen. Diese Archive tragen die Endung .jar. jar ermöglicht Archivierung und Komprimierung.
Das ist vor allem dann von Vorteil, wenn Applets über das Netz geladen werden müssen. Für jede .class Datei und für jede Ressource, die innerhalb des Applets verwendet wird, muss normalerweise eine eigene Netzverbindung aufgebaut werden. Das schlägt sich negativ in der Performance nieder. Mit jar ist es nun möglich, alle .class-Dateien, Bilder und Audiodateien in eine Datei zu packen. Diese Datei kann dann in einem Ladevorgang vom Browser bzw. Appletviewer geladen werden. Die Kommandos, die jar besitzt, sind denenen des UNIX-Befehls tar sehr ähnlich. Im Folgenden werden die einzelnen Kommandos und Optionen von jar beschrieben. Eines der folgenden Kommandos muss beim Aufruf von jar angegeben werden:Neben einem der oben genannten Kommandos können jar beliebig viele der folgenden Optionen angegeben werden. Wie auch bei tar können die vorangestellten Minuszeichen auch entfallen, wie die unten genannten Beispiele zeigen:
- c
legt ein neues Archiv an.- t
listet den Inhalt des Archivs auf.- x
packt die Dateien im Archiv aus.- u
aktualisiert ein bereits existierendes jar-Archiv.Nach Angabe der Optionen werden die Dateien, die gepackt werden sollen, durch Leerzeichen getrennt aufgelistet. Bei Angabe eines Verzeichnisnamens wird der Inhalt des Verzeichnisses rekursiv eingeschlossen. Der Befehl
- -0 (Null)
wird angegeben, wenn nur archiviert werden soll. Komprimierung wird in diesem Fall unterdrückt.- -C
wird angegeben, wenn für die Ausführung von jar das aktuelle Verzeichnis geändert werden soll.- -f <file>
zur Angabe eines Ausgabe-Dateinamens.- -i
Fügt dem erzeugten Archiv eine Indexdatei (genannt INDEX.LST) hinzu, die zum optimierten Laden von Archiven ausgewertet werden kann.- -m <manifest>
bindet die Manifest-Information von der angegebenen Manifest-Datei ein.- -M
wird angegeben, wenn keine Manifest-Datei für die Einträge erstellt werden soll.- -v
(verbose) gibt mehr Informationen während der Aktion aus.jar cvf test.jar classes Main.javaspeichert die Datei Main.java und alle Dateien und Verzeichnisse im Verzeichnis classes in einer JAR-Datei test.jar. Durch Angabe der Option v werden die Aktionen von jar ausführlich auf der Standardausgabe protokolliert.
Eine JAR-Datei besitzt üblicherweise eine Manifest-Datei, in der nähere Informationen über den Inhalt einer Datei gepeichert werden können. Mit den Standard-Optionen wird per Voreinstellung automatisch eine Manifest-Datei erzeugt. Will man der Manifest-Datei eigene Informationen hinzufügen (z. B. zur Paketversionierung), geht man normalerweise wie folgt vor: Zunächst werden die eigenen Informationen in einer neuen Datei gespeichert. Die Einträge sollten hierbei zeilenweise in der Form<Schlüssel>: <Wert>aufgebaut sein. Anschließend können die eigenen Informationen beim Erzeugen der JAR-Datei mit der Option m hinzugefügt werden. Bei Angabe des Werts Main-Class legt man z. B. zunächst eine Datei mit folgendem Inhalt an:Main-Class: de.dpunkt.oop.inner.WordCounterAnschließend ruft man jar mit den entsprechenden Optionen auf:jar cvmf mymanifest.mf demos.jarObiger Aufruf erzeugt die JAR-Datei demos.jar und fügt die Informationen, die in mymanifest.mf gespeichert sind in die Manifest-Datei ein.