JAR-Datei: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K (Beispiel)
K (Beispiel einer Manifest-Datei)
Zeile 152: Zeile 152:
 
  Manifest-Version: 1.0
 
  Manifest-Version: 1.0
 
  Created-By: Eagle Projekt Manager 1.1.0.0
 
  Created-By: Eagle Projekt Manager 1.1.0.0
 +
Permissions: all-permissions
 +
Codebase: *.eagleside.de
 +
Application-Name: DatabaseDesigner
 
  Main-Class: de.eagleside.databasedesigner.DatabaseDesignerMain
 
  Main-Class: de.eagleside.databasedesigner.DatabaseDesignerMain
 
  CLASS-PATH: ./lib/jdom.jar ./lib/EagleSwingLibrary.jar ./lib/EagleUtilLibrary.jar
 
  CLASS-PATH: ./lib/jdom.jar ./lib/EagleSwingLibrary.jar ./lib/EagleUtilLibrary.jar

Version vom 29. Februar 2016, 14:05 Uhr

Eine JAR-Datei (Java Archive), ist ein Archiv, welches auf dem ZIP-Format basiert. JAR-Dateien sind identisch zu ZIP-Dateien nur um einen Ordner META-INF erweitert.

JAR-Dateien werden verwendet, um die einzelnen Dateien eines Projekts zusammen zufassen. So sind in einem Archiv häufig neben Class-Dateien auch multimediale Inhalte zu finden (Bilder, Sound etc.).
Wenn die Manifestdatei mit einem Eintrag für eine Startklasse (Main-Class) versehen wurde, kann eine die JAR-Datei bei passender JRE per Mausklick gestartet werden.

META-INF

Der META-INF Ordner enthält immer eine Datei MANIFEST.MF, in dieser werden Informationen über das Archiv bzw. das Programm beschrieben. Zusätzlich können auch Dateien für die Signatur des Archivs vorhanden sein.

MANIFEST.MF

In der Manifest-Datei werden verschiedene Eigenschaften beschrieben. Die Eigenschaften werden durch einen Tupel von Schlüsselwort und Wert angegeben. Für verschiedene Bereiche der Verwendung, sind auch verschiedene Eigenschaften vorgesehen:

Bereich Attribut Beschreibung Optional
Allgemein Manifest-Version Versionsnummer für die Manifest-Datei Nein
Created-By Optionale Angabe des Erstellers Ja
Name Angabe des Namens einer Datei, z.B. für eine Signatur oder Bean Ja
SHA1-Digest SHA1 Signatur für die darüber angegebene Datei Ja
Signature-Version Definiert die Version der Signatur Ja
Class-Path Angabe von Klassen und JAR-Dateien, die zum Classpath hinzugefügt werden sollen, sie sollten immer mit ./ beginend angegeben werden Ja
Anwendungen Main-Class Angabe der Mainclass, sie ist nötig wenn die JAR-Datei ausführbar sein soll Ja (wenn es kein ausführbares Programm ist)
SplashScreen-Image Angabe eines Bildes, das als Splash-Screen angezeigt wird. Das Bild muss in der JAR vorhanden sein. Ja
Applets Extension-List
*-Extension-Name
*-Specification-Version
*-Implementation-Version
*-Implementation-Vendor-Id
*-Implementation-URL
Extensions Extension-Name
Implementation-Title
Implementation-Vendor
Implementation-Vendor-Id
Implementation-URL
Specification-Title
Specification-Version
Specification-Vendor
Sealed
J2EE Java-Bean Definiert eine Java Bean Klasse
x-Digest-y
Magic

Jede Manifest-Datei muss mit einer Leerzeile abgeschlossen werden.

Beispiel einer Manifest-Datei

Manifest-Version: 1.0
Created-By: Eagle Projekt Manager 1.1.0.0
Permissions: all-permissions
Codebase: *.eagleside.de
Application-Name: DatabaseDesigner
Main-Class: de.eagleside.databasedesigner.DatabaseDesignerMain
CLASS-PATH: ./lib/jdom.jar ./lib/EagleSwingLibrary.jar ./lib/EagleUtilLibrary.jar
[Leerzeile!]

Es ist üblich, Abhängigkeiten in einem Unterverzeichnis relativ zur Programm-Jar-Datei abzulegen. Laufwerksangaben sind systemabhängig, daher sollte darauf verzichtet werden.

Quellen

JAR File Specification