Tutoriel – Les bases de l’outil JAR et du compiler Java
Eric Vialle | Jeudi 22 mai 2008 | 12:22
L’utilisation d’EDI comme Eclipse nous fait oublier les bases de Java, comme l’utilisation d’une calculatrice nous fait oublier combien font 1+1… Nous allons ici revoir comment compiler notre code source et l’exécuter en ligne de commande.
Exécution d’une application à partir de son code source
Nous allons voir ici comment compiler et exécuter son projet.
Compilation du code Source Java
Nous allons transformer tous nos fichiers sources comportant une extension .java en fichier binaires .class (c’est à dire le Bytecode Java)
Lorsque des fichiers sont à specifier, vous pouvez utiliser le wildcard * afin de ne pas avoir a taper toute une liste de repertoire ou de fichier (par exemple: commande *.java)
Compilation Simple
javac -d /repertoireDeDestination fichiersACompiler1.java fichiersACompiler2.java
Compile les fichiers fichiersACompiler1.java et fichiersACompiler2.java dans le répertoire repertoireDeDestination.
Compilation à partir d’une certaine version d’un code source
javac -source 1.5 fichiersACompiler1.java fichiersACompiler2.javaCompilera votre code, comme si il s’agissait de code Java 1.5
Compilation à destination d’une certaine version de JVM
javac -target 1.5 fichiersACompiler1.java fichiersACompiler2.java
Compilera votre code, afin qu’il soit optimisé pour les JVM 1.5.
Il est impossible avec javac de compiler un code source pour une JVM ayant une version antérieure (compiler du source 1.5 pour une JVM 1.4, par exemple). Toutefois, l’outil Retroweaver permet de réaliser cette petite prouesse…
Création et manipulation du JAR
jar cf nomDuFichierJar repertoire1 repertoire2 fichier1 fichier2crée un nouveau JAR nommé nomDuFichierJar en y incluant fichier1, fichier2, fichier3. Le fichier MANIFEST.MF sera créé automatiquement.
jar tf nomDuFichierJar liste tous les fichiers du fichier JAR
jar xf nomDuFichierJar extrait le contenu du fichier JAR
Ajouter l’option 0 lors de la création d’un JAR (jar c0f ….)permet de ne pas compresser celle-ci. Cela peut etre utile si vous souhaitez démarrer rapidement une application locale.
Exécution de l’application Java
Avec un Jar
java -jar nomDuFichierJarExécute le fichier nomDuFichierJar en fonction du Manifest File. Ce fichier doit contenir le nom de classe contenant la méthode main, notamment
Main-Class: classname
Avec uniquement les fichiers .class
java fichierClassContenantLeMain
Attention le fichier a une extention .class (fichierClassContenantLeMain.class), mais son extention ne doit pas être mis dans la commande.
Options Possibles de jar, java et de javac
Ces trois commandes ont une foules d’options possibles. Je vous laisse les retrouver ici:
Vous pouvez customiser les paramètres de lancement de la machine virtuelle Java, dans Eclipse. Pour cela, allez dans dans le menu Run/Run Dialog et remplissez le champ VM arguements:
Connaissez vous la différence entre JAR, EAR, WAR, RAR, AAR ?
(Source: Wikipedia)
Avant de parler de leurs différences, parlons de leur points communs. Tous ces fichiers sont en fait des ZIP contenant des fichiers destinés à être executé par une JVM.
Sources:






