JAR

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

JAR, dat staat voor Java ARchive, is het standaard datacompressie- en archiefformaat voor bestanden uit de programmeertaal Java. Het is ook een woordgrapje omdat een jar in het Engels een kan is. Een jar met java is dus een kan met koffie.

In plaats van JAR wordt bij distributie van J2EE-webmodules vaak de extensie WAR (Web ARchief), gebruikt. Deze speciale versie van het JAR-bestand kan worden losgelaten in een applicatieserver en wordt daarna vanzelf geïnstalleerd. Een ander J2EE-bestandsformaat is EAR, Enterprise ARchive. Een EAR-bestand kan bestaan uit meerdere WAR-bestanden, aangevuld met EJBs.

Het is ook mogelijk om een digitale handtekening toe te voegen aan een JAR-bestand, zodat de gebruiker er zeker van kan zijn dat het programma niet aangepast is door derden.

Structuur[bewerken]

Een JAR-bestand is qua structuur hetzelfde als een ZIP-bestand, maar heeft daarbinnen een directorystructuur met een vast gedefinieerde indeling. Doordat een JAR-bestand ook een ZIP-bestand is kunnen programma's die dit formaat kunnen weergeven ook worden gebruikt voor het weergeven van de inhoud van een JAR-bestand.

Naast de Java-class- (klasse-)bestanden bevat het een extra bestand genaamd "META-INF/MANIFEST.MF", waarin wordt aangegeven hoe het JAR-archief gebruikt gaat worden.

Een manifest-voorbeeld om aan te geven dat er een klasse myPrograms.MyClass moet worden gebruikt als hoofdklasse (Main class):

Main-Class:myPrograms.MyClass

Maken en gebruiken[bewerken]

Deze bestanden kunnen gemaakt worden met het commando "jar", dat onderdeel is van de Java Development Kit (JDK). Maar ook normale ZIP-programma's kunnen gebruikt worden om JAR-bestanden aan te maken.

Een JAR-bestand foo.jar met de bestanden Foo.class en Bar.class kan zo worden aangemaakt:

jar cvf foo.jar Foo.class Bar.class

Een JAR-bestand foo.jar kan zo direct in de Java Virtual Machine (JVM) worden geladen:

java -jar foo.jar

Zie ook[bewerken]

Portal.svg Portaal Javaplatform

Externe links[bewerken]