Definition

Java Archive (JAR-Datei)

Ein Java Archive, auch JAR-Datei genannt, enthält alle Komponenten aus denen eine eigenständige, ausführbare Java-Anwendung, ein einsetzbares Java-Applet oder, am häufigsten, eine Java-Bibliothek besteht, mit der jede Java-Laufzeitumgebung verknüpft werden kann.

Die Verwendung einer JAR-Datei hat zwei wesentliche Vorteile. Der erste Vorteil ist die Fähigkeit, Hunderte, wenn nicht Tausende von verschiedenen Dateien, aus denen sich eine Anwendung zusammensetzt, zu aggregieren. Der zweite Vorteil ist die Möglichkeit, alle enthaltenen Dateien zu komprimieren, wodurch die Größe der Anwendung stark reduziert wird und es einfacher wird, die JAR-Datei über ein Netzwerk und zwischen verschiedenen Umgebungen zu verschieben.

Was eine JAR-Datei enthält

Java-Anwendungen und -Bibliotheken können Hunderte von verschiedenen Dateien enthalten, darunter kompilierter Java-Quellcode, eine Manifest-Datei, XML-basierte Konfigurationsdaten, JSON-basierte Datendateien, Bilder, Soundclips und sogar Sicherheitszertifikate. Eine JAR-Datei ist einfach eine Zusammenfassung all dieser Ressourcen in einer einzigen, komprimierten Datei.

Da eine JAR-Datei einen Standard-Komprimierungsalgorithmus verwendet, ist das Öffnen einer JAR-Datei so einfach wie das Ändern ihrer Erweiterung von .jar auf .zip und das Extrahieren des Inhalts mit einem Standard-Dekomprimierungs-Tool.

Obwohl optional, wird empfohlen, dass JAR-Dateien eine Manifest-Datei namens MANIFEST.MF in einem Ordner namens META-INF enthalten. Diese Manifest-Datei enthält Metadaten über die JAR-Datei, einschließlich Eigenschaften wie die Codeversion, den Hauptautor des Codes und den Namen der Organisation, die den Code verwaltet.

Für eine ausführbare JAR-Datei, die eine eigenständige Anwendung enthält, sollte ein Main-Class-Attribut existieren, das den Namen des ersten Codes für die Java-Laufzeitumgebung (JRE) enthält, der beim Ausführen der Anwendung aufgerufen wird.

Gemeinsame JAR-Dienstprogramme

Jede Installation des Java Development Kit (JDK) enthält ein JAR-Dienstprogramm (unter Unix jar.sh und unter Windows jar.exe), das eine Vielzahl von hilfreichen Funktionen für die Arbeit mit JAR-Dateien bietet, einschließlich der Möglichkeit:

  • neue JAR-Dateien mit einer Manifest-Datei zu erstellen;
  • den gesamten Inhalt einer JAR-Datei in das Dateisystem zu extrahieren;
  • eine bestehende JAR-Datei durch Hinzufügen von Dateien zu aktualisieren; und
  • Aktualisierung der vorhandenen Manifest-Datei einer JAR-Datei.

So öffnet man eine JAR-Datei

Um eine JAR-Datei zu öffnen und den Inhalt in das Dateisystem zu extrahieren, muss man zwei JAR-Dienstprogramm-Switches verwenden, nämlich „x“, um den Inhalt zu extrahieren, und „f“, um den Namen der zu öffnenden JAR-Datei anzugeben. Das Dienstprogramme extrahiert dann den Inhalt in das Dateisystem.

Beispielsweise sieht der JAR-Dienstprogrammbefehl zum Extrahieren des Inhalts einer JAR-Datei namens my_java_app.jar wie folgt aus:

>jar xf C:\techtarget\my_java_app.jar

So erstellt man eine JAR-Datei

Das JAR-Dienstprogramm kann auch bei der Erstellung einer JAR-Datei helfen. Um eine JAR-Datei namens tss.jar zu erstellen, die zwei Dateien namens Tech.class und Target.class enthält, sieht der Befehl wie folgt aus:

 

>jar cf tss.jar Tech.class Target.class

So führt man ausführbare JAR-Dateien aus

Jeder Java-Code, der eine Methode namens „main“ hat, wird als eigenständige Anwendung betrachtet. Zum Beispiel hat der folgende Code eine Hauptmethode, die ein Dialogfeld mit der Aufschrift „Hello World“ auslöst.

package theserverside;

import javax.swing.*;

public class HelloWorldApplication {       

 public static void main(String args[]){

   String title = "Ausführbare Java-Anwendung";

   String message = "Hello World!";

   JOptionPane.showMessageDialog(null, message, title, 1);

 }

}

Wenn dieser Code in eine JAR-Datei gepackt wurde, führt die JAR-Datei ihn aus, da sie Code enthält, der direkt von der JRE ausgeführt werden kann. Um die ausführbare JAR-Datei auszuführen, verwendet man jedoch nicht das JAR-Dienstprogramm des JDK. Stattdessen verwendet man das spezielle Dienstprogramm java.exe, und somit wird der Name der jar-Datei angegeben.

Die Syntax für die Ausführung einer ausführbaren JAR-Datei namens my_java_app.jar mit dem Dienstprogramm java.exe des JDK lautet wie folgt:

>java.exe -jar my_java_app.jar

Diese Definition wurde zuletzt im September 2018 aktualisiert

Erfahren Sie mehr über IT-Berufe und Weiterbildung