Java-Archiv

Java-Archiv

Ein Java Archive (umgangssprachlich aufgrund der Dateiendung auch JAR-Datei genannt) ist eine ZIP-Datei, die zusätzliche Metadaten in einer Datei „META-INF/MANIFEST.MF“ enthalten kann. JARs werden vor allem zur Verteilung von Java-Klassenbibliotheken und -Programmen eingesetzt. Die Bezeichnung kann als Wortspiel mit dem englischen Wort Jar, deutsch „Gefäß“, verstanden werden.

Inhaltsverzeichnis

Geschichte

JAR-Dateien wurden ursprünglich eingeführt, damit Java-Applets benötigte Java-Klassen nicht einzeln aus dem Netz nachladen müssen. Die Übertragung vieler Klassen in einer Datei ist effizienter, die Möglichkeit zur Datenkompression verstärkt diesen Vorteil.

Verwendung

JAR-Dateien haben gegenüber der Benutzung einer Sammlung von Java-Klassendateien den Vorteil, dass man nur eine Datei zu handhaben hat und dank einem Eintrag in der „Manifest“-Datei mit einem einzigen Befehl, auch unter grafischen Benutzeroberflächen wie Windows, Mac OS X oder KDE, das komplette Programm starten kann (die Datei wurde dem Anschein nach wie ein richtiges, kompiliertes Programm „ausführbar“ gemacht). Mit einer aktuellen installierten Java Runtime Environment kann so eine JAR-Datei (unter manchen Betriebssystemen per Doppelklick) direkt als Programm gestartet werden (Executable JAR). Mit java -jar kann man JAR-Dateien auch aus der Kommandozeile starten. JAR-Archive können durch die interne Nutzung von UTF-8 für Dateinamen auch solche mit Umlauten enthalten.

Ein JAR kann, wie auch eine ZIP-Datei, sowohl komprimiert als auch unkomprimiert sein. JAR-Dateien können mit dem jar-Befehl des JDK (der die Syntax von tar benutzt) oder, sofern die Dateinamen nur ASCII-Zeichen enthalten, mit jedem ZIP-Programm erstellt werden. Außerdem bietet die Java Platform, Standard Edition in den beiden Paketen „java.util.jar“ und „java.util.zip“ Klassen an, um JAR- oder ZIP-Archive auszulesen oder zu erstellen.

Zum Beispiel zeigt der folgende Befehl den Inhalt einer JAR-Datei namens test.jar an.

jar tvf test.jar

Dabei steht der Buchstabe t für „Inhaltsverzeichnis anzeigen“ (von englisch table of contents), v für ausführliche Ausgabe (von englisch verbose) und f besagt, dass aus einer Datei (englisch file) gelesen werden soll, deren Name folgt.

Manifest

Jedes Java Archive enthält in seinem Verzeichnis „META-INF“ eine Datei namens „MANIFEST.MF“, die verschiedene Informationen über den Inhalt des Archivs liefert. Zu den wichtigsten Meta-Informationen zählen

Diese Manifest-Datei ist eine einfache zeilenorientierte Textdatei, die mehrere Paare aus Namen und Werten enthält, deren jedes ein sogenanntes Attribut definiert. Ein Attribut ist eine Eigenschaft der gesamten Anwendung, der enthaltenen Klassenbibliothek oder auch nur eines einzelnen Java-Pakets (package) oder einer einzelnen Klasse. Zusätzlich ist sie in mehrere Abschnitte (sections) aufgeteilt.

Der erste Abschnitt heißt main section (Hauptabschnitt) und definiert Attribute, die sich auf das gesamte Java Archive beziehen. Er beginnt immer mit der Definition des Attributs „Manifest-Version“, während die übrigen Attribute optional sind. Die folgenden Abschnitte beziehen sich jeweils auf ein einzelnes Paket oder eine Klasse und sind optional ebenso wie die darin enthaltenen Attribute. Unbekannte Attribute werden ignoriert und führen nicht zu Fehlermeldungen. Wird ein Attribut sowohl im Hauptabschnitt als auch in einem Einzelabschnitt definiert, so überlagert der im Einzelabschnitt definierte Wert den im Hauptabschnitt vorbelegten für diejenige Komponente (Paket oder Klasse), auf die sich der Abschnitt bezieht.

Beispiel

Das folgende Beispiel zeigt einen Ausschnitt des Manifests der in der Laufzeitumgebung von Java 1.4 enthaltenen Datei „rt.jar“.

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

Dem Hauptabschnitt in diesem Beispiel lässt sich entnehmen, dass dieses Manifest so aufgebaut ist, wie in (der bisher einzigen) Version 1 der JAR-Datei-Spezifikation von Sun Microsystems beschrieben. Die übrigen Attribute dieses Hauptabschnitts liefern Informationen über die von der Bibliothek erfüllte Spezifikation, den Erzeuger des Java Archives, den Namen der Implementierung, sowie Hersteller und Version der verwendeten Spezifikation und der enthaltenen Implementierung. Die beiden folgenden Abschnitte des Beispiels beziehen sich jeweils auf eine Klasse, die als JavaBean markiert wird.

Abgeleitete Formate

Weitere Spezialisierungen des JAR-Formats sind zum Beispiel WAR-Dateien (Web Application Archive), EAR-Dateien (Enterprise Application Archive) oder OpenDocument-Dateien.

Hilfsprogramme

Das Java Development Kit enthält zwei Programme zur Manipulation von JAR-Dateien:

jar
jar ist ein Programm zum Erzeugen, Modifizieren und Entpacken von JAR-Dateien, dessen Aufrufparameter denjenigen des bekannten Unix-Programms tar ähneln.
jarsigner
jarsigner ist ein Programm, das JAR-Dateien signiert und deren elektronische Signatur überprüft.

Sofern die Dateinamen im Archiv aus ASCII-Zeichen bestehen, lassen sich JAR-Dateien mit jedem Software-Werkzeug bearbeiten, das auch ZIP-Dateien bearbeiten kann. Einige Beispiele sind in der Liste der Datenkompressionsprogramme aufgeführt.

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Java (Technologie) — Java Logo Java Technik (englisch Java Technology) ist eine hauptsächlich von Sun Microsystems entwickelte Sammlung von Spezifikationen, die einerseits die Programmiersprache Java und andererseits verschiedene Laufzeitumgebungen für… …   Deutsch Wikipedia

  • Java (Programmiersprache) — Java Basisdaten Paradigmen: Objektorientierte Programmiersprache Erscheinungsjahr …   Deutsch Wikipedia

  • Java Development Kit — Entwickler Sun Microsystems (Tochter der Oracle Cooperation) Aktuelle Version 7.0.1 (18. Oktober 2011[1]) Betriebssystem Windows, Solaris, Linux …   Deutsch Wikipedia

  • Java Archive — Ein Java Archive (umgangssprachlich aufgrund der Dateiendung auch JAR Datei genannt) ist eine ZIP Datei, die zusätzliche Metadaten in einer Datei „META INF/MANIFEST.MF“ enthalten kann. JARs werden vor allem zur Verteilung von Java… …   Deutsch Wikipedia

  • Web-Archiv — Dieser Artikel behandelt das Dateiformat Web Archive. Zum Internetarchiv siehe Internet Archive; zu den vom Webbrowser Konqueror erzeugten Dateien siehe WAR Datei (KDE) Web Archive oder Web Application Archive ist ein Dateiformat, das beschreibt …   Deutsch Wikipedia

  • Datenkompressionsprogramm — Dieser Artikel enthält einige Programme für Datenkompression (auch Packprogramme oder einfach Packer) und die von ihnen unterstützten Formate. Hinweis: Die ZIP Familie von Kompressionsprogrammen stellt nur vom Namen her eine Einheit dar. Programm …   Deutsch Wikipedia

  • Datenkompressionsprogramme — Dieser Artikel enthält einige Programme für Datenkompression (auch Packprogramme oder einfach Packer) und die von ihnen unterstützten Formate. Hinweis: Die ZIP Familie von Kompressionsprogrammen stellt nur vom Namen her eine Einheit dar. Programm …   Deutsch Wikipedia

  • Filzip — Dieser Artikel enthält einige Programme für Datenkompression (auch Packprogramme oder einfach Packer) und die von ihnen unterstützten Formate. Hinweis: Die ZIP Familie von Kompressionsprogrammen stellt nur vom Namen her eine Einheit dar. Programm …   Deutsch Wikipedia

  • Liste der Datenkompressionsprogramme — Dieser Artikel enthält einige Programme für Datenkompression (auch Packprogramme oder einfach Packer) und die von ihnen unterstützten Formate. Hinweis: Die ZIP Familie von Kompressionsprogrammen stellt nur vom Namen her eine Einheit dar. Programm …   Deutsch Wikipedia

  • PKArc — Dieser Artikel enthält einige Programme für Datenkompression (auch Packprogramme oder einfach Packer) und die von ihnen unterstützten Formate. Hinweis: Die ZIP Familie von Kompressionsprogrammen stellt nur vom Namen her eine Einheit dar. Programm …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”