Titel   Inhalt   Suchen   Index   DOC  Handbuch der Java-Programmierung, 5. Auflage
 <<    <     >    >>   API  Kapitel 51 - Hilfsprogramme des JDK

51.6 jar - Das Archivierungswerkzeug



51.6.1 Aufruf

jar [ commands ] archive { input-file }

51.6.2 Beschreibung

jar ist ein Archivierungsprogramm, das Dateien und komplette Unterverzeichnisse komprimieren und in eine gemeinsame Archivdatei packen kann. Es verwendet ein Kompressionsformat, das den diversen zip-/unzip-Programmen ähnelt, und wird analog dem UNIX-Tool tar bedient. Ein Vorteil von jar ist seine Portabilität, die sowohl für das erzeugte Dateiformat als auch für das (in Java geschriebene) Programm selbst gilt.

Wichtigster Einsatzzweck von jar ist es, alle zu einem Java-Programm gehörenden Dateien (.class-, Image-, Sound-Dateien usw.) in einer einzigen Datei zusammenzufassen. Neben den organisatorischen Vorteilen, die diese Möglichkeit zweifellos bietet, wurden jar-Dateien vor allem eingeführt, um das Laden von Applets aus dem Internet zu beschleunigen. Dadurch müssen Web-Browser nämlich nicht mehr für jede einzelne Datei, die in einem Applet benötigt wird, eine eigene GET-Transaktion absetzen, sondern können alle erforderlichen Files in einem Schritt laden. Die Ladezeit von Applets wird dadurch drastisch verringert, insbesondere, wenn viele kleine Dateien benötigt werden.

51.6.3 Kommandos

Im Gegensatz zu den übrigen Programmen, die in diesem Kapitel vorgestellt wurden, kennt jar keine Optionsparameter, sondern erwartet Kommandos an ihrer Stelle. Ein Kommando besteht aus einem Buchstaben, der ohne den Präfix - angegeben wird. Sollen mehrere Kommandos kombiniert werden, so werden die zugehörigen Buchstaben ohne Lücken direkt hintereinander geschrieben. Diese abweichende Syntax stammt von dem Kommando tar, das auf UNIX-Rechnern zur Archivierung von Dateien eingesetzt wird. Tabelle 51.7 gibt eine Übersicht der verfügbaren Kommandos.

Kommando Bedeutung
c Erzeugt eine neue Archivdatei (create). Kann nicht zusammen mit t oder x verwendet werden.
t Gibt das Inhaltsverzeichnis der Archivdatei aus (table of contents). Kann nicht zusammen mit c oder x verwendet werden.
x file Extrahiert eine oder mehrere Dateien aus dem Archiv (extract). Kann nicht zusammen mit c oder t verwendet werden.
u Fügt die angegebenen Dateien in die bestehende Archivdatei ein.
f Gibt an, dass der nächste Parameter der Name der Archivdatei ist. Wird das Kommando f nicht angegeben, verwendet jar statt dessen die Standardein- und -ausgabe.
v Gibt zusätzliche Informationen aus (verbose). Kann zusätzlich zu einem der anderen Kommandos verwendet werden.
0 Die Dateien werden ohne Kompression gespeichert.

Tabelle 51.7: Kommandos von jar

Sollen beispielsweise alle .java-Dateien des aktuellen Verzeichnisses in ein Archiv mit der Bezeichnung xyz.jar gepackt werden, so kann dazu folgendes Kommando verwendet werden:

jar cf xyz.jar *.java

Das Inhaltsverzeichnis des Archivs kann folgendermaßen abgerufen werden:

jar tf xyz.jar

Etwas ausführlicher geht es mit:

jar tvf xyz.jar

Um die Datei Test.java aus dem Archiv zu extrahieren, kann das folgende Kommando verwendet werden (das natürlich auch ohne den Zusatz v funktioniert):

jar xvf xyz.jar Test.java

51.6.4 Verwendung von jar-Dateien in Applets

Die Verwendung von jar-Dateien in Applets erfolgt mit Hilfe des ARCHIVE-Parameters des APPLET-Tags (siehe Kapitel 39). Soll beispielsweise das »Hello, World«-Programm HWApplet.java aus Listing 39.7 aus einem jar-Archiv hello.jar ausgeführt werden, so ist in den folgenden Schritten vorzugehen.

Zunächst werden die Dateien HWApplet.class, hello.au und world.au in ein jar-Archiv gepackt:

jar cvf hello.jar HWApplet.class hello.au world.au

Anschließend wird die HTML-Datei HWApplet.html zum Aufruf des Applets erstellt:

001 <html>
002 <head>
003 <title>HWApplet</title>
004 </head>
005 <body>
006 <h1>HWApplet</h1>
007 <applet
008    code=HWApplet.class
009    archive=hello.jar
010    width=300
011    height=200>
012 Hier steht das Applet HWApplet.class
013 </applet>
014 </body>
015 </html>
HWApplet.html
Listing 51.1: HTML mit ARCHIVE-Tag

Nun kann das Applet wie bisher gestartet werden, benötigt aber zum Laden aller Dateien nur noch eine einzige HTTP-Transaktion.

Leider unterstützen noch nicht alle Browser das jar-Format, so dass seine Verwendung zum heutigen Zeitpunkt überlegt sein will. Für die nahe Zukunft ist es aber ein wichtiger Schritt zur Verbesserung der Ladezeiten von Applets.

 Hinweis 


 Titel   Inhalt   Suchen   Index   DOC  Handbuch der Java-Programmierung, 5. Auflage, Addison Wesley, Version 5.0.2
 <<    <     >    >>   API  © 1998, 2007 Guido Krüger & Thomas Stark, http://www.javabuch.de