Nicolas DAILLY
www.dailly.info > Dossiers techniques > Java > Fichiers d’archives Java

Fichiers d’archives Java

a. Présentation

Les fichiers d’archives Java – Java Archive File – sont des fichiers d’extension « .jar » qui regroupent un ensemble de ressources s’utilisant dans des programmes Java. Ces archives sont compressés au format « rar » et peuvent donc être facilement ouvertes à l’aide d’un utilitaire comme « winrar ». Les archives java comportent essentiellement des classes java compilées « .class », mais elles peuvent également contenir toutes sortes de ressources comme des images et des fichiers de configuration.

Les fichiers d’archives java permettent de déployer et de distribuer très facilement des bibliothèques de classes java. L’adjonction à l’archive d’un fichier de configuration particulier, appelé manifeste, permet de rendre l’archive exécutable. Le manifeste doit alors contenir les informations concernant la classe à exécuter lors du lancement de l’archive.

b. Utilisation d’une bibliothèque de classes

Le nom d’une archive « .jar » n’a aucune signification particulière. Ce qui est beaucoup plus important est l’arborescence interne de l’archive qui doit respecter les conventions java concernant les packages. Si l’archive java ne comporte aucune arborescence interne c’est que les fichiers qu’elle comporte ne font partie d’aucun package.

Pour utiliser les bibliothèques contenues dans une archive java il suffit d’ajouter l’archive dans le « classpath » du compilateur « javac » et de la « machine virtuelle java ». Le développeur devra ensuite spécifier au besoin les packages à importer au début de ses fichiers sources java.

c. Exécution d’une archive

Pour exécuter une archive java, il faut utiliser la commande suivante « java [options] –jar archive_java.jar [classe_principale] ». Pour les versions 1.1 et antérieures de la machine virtuelle, il faut utiliser la commande « jre archive_java archive_java.jar classe_principale ». Pour les version 1.2 et supérieures de la machine virtuelle, si l’archive java intègre un manifeste précisant la classe principale à exécuter, il n’est pas besoin de préciser celle-ci.

d. Création d’une archive java

Pour créer une archive java, il suffit d’exécuter la commande « jar cf nom_archive liste_des_fichiers » où les différents fichiers de la liste sont séparés par des espaces. L’option « c » spécifie que l’on souhaite créer une archive et « f » permet d’envoyer le flux dans l’archive dont le nom est spécifié. L’option « v », pour verbosité, permet de suivre l’évolution de la création de l’archive.

Pour extraire le contenu d’une archive java, il suffit d’exécuter la commande « jar xf nom_archive [liste_des_fichiers_à_extraire] ».

Remarque : bien qu’il n’ai pas été conçu pour cela, le format « .jar » peut être à l’occasion utilisé pour compresser des fichiers au même titre que le format zip ou rar. En effet, la commande jar, fournit avec toutes les distributions du SDK, peut être utilisé sur de nombreux systèmes hétéroclites.

e. Ajout d’un Manifeste

Le manifeste est un fichier texte qui permet, entre autres, de spécifier la classe qui sera exécutée lors du lancement d’une archive. Pour définir le manifeste, il suffit d’écrire un fichier texte et de le passer en paramètre lors de la création de l’archive en utilisant l’option « m ». La commande à taper est alors, pour reprendre les exemples précédents : « jar cvmf nom_manifeste nom_archive liste_des_fichiers ». Il faut noter que l’ordre de passage des arguments « nom_manifeste » et « nom_archive » doit être le même que l’ordre des lettres « m » et « f » des options. Ainsi, dans l’exemple précédent, il aurait été possible d’écrire : « jar cvfm nom_archive nom_manifeste liste_des_fichiers ». Le fichier texte « nom_manifeste » doit être écrit complètement, avec son extension. Ce nom et cette extension peut être quelconque puisqu’en réalité, c’est le contenu du fichier qui sera recopié dans le manifeste de l’archive. Le manifeste est créé sous le nom « MANIFEST.MF » dans le répertoire « META-INF » se situant à la racine de l’archive.

Le manifeste comporte un renseignement par ligne. Chaque ligne est constituée du type de renseignement et de sa valeur, le tout séparé par le caractère «  : ». Chaque ligne, pour être valide, doit obligatoirement se terminer par un caractère de retour à la ligne, attention donc à ajouter ce caractère à la fin de la dernière ligne du fichier.

Voici la liste de quelques renseignements que l’on peut inclure au manifeste (avec des valeurs d’exemples) : Manifest-Version : 1.0 (le manifeste est conforme aux spécifications 1.0 sur la rédaction des manifestes)
- Main-Class : classname (à partir de la version 1.2 du manifeste, spécifie le nom de la classe à executer lors du lancement de l’archive).
- Implementation-Title : "titre du package"
- Implementation-Version : "n° de version "
- Implementation-Vendor : "organisation vendant le produit"
- Specification-Title : "titre de la spécification"
- Specification-Version : "n° de version "
- Specification-Vendor : "organisation vendant le produit"

Retour à la liste des articles


© 2000-2017 ~ Nicolas Dailly
Page générée le 23/07/2017 à 10:52:19 ~ Site réalisé avec SPIP