Ce chapitre de la FAQ a pour but de montrer comment exporter, sous la forme d’une archive JAR, un programme Java (application, applet, servlet, web app, bean, etc…). Nous utiliserons ici la situation la plus simple: une application (avec méthode main()) exportée dans une archive JAR auto-exécutable. Nous détaillerons les étapes de la création d’une telle archive.
NOTE 1: Pour des raisons de temps notamment (JBuilder 5 n’est pas encore sortie en France à l’heure de la rédaction de cet article), la version de JBuilder utilisée sera la version US.
NOTE 2: cette page contient de nombreuses images, le temps de chargement peut être assez long…
1) Lancer l’outil, ou wizard, d’exportation: Menu WIZARDS -> ARCHIVE BUILDER
2) Première étape de l’exportation: le choix d’un format.
Nous choisissons ici le format "Application". On peut cependant prendre "Basic" (comme "Application" mais non auto-exécutable), Applet pour exporter des applets, Web Start pour exporter des Web App, etc… Une description de chaque option est faite dans la case de la fenêtre "Description".
3) Résolution des dépendances (1)
Un programme Java a la plupart du temps des dépendances, c’est à dire des classes ou des packages absolument nécessaires pour s’exécuter. Par exemple, un programme utilisant une interface graphique Swing devra absolument intégrer les classes du package Swing nécessaires. Pas besoin de spécifier ici les classes du package Swing ou de tout autre package "classique" fourni avec le JDK. Par contre, si vous utilisez des bibliothèques non fournies par défaut (par exemple le VerticalFlowLayout de Borland). C’est également ici que l’on ajoutera à l’archive tous les fichiers non-java nécessaires.
4) Résolution des dépendances (2)
Vous ne ferez rien ici si aucun package autre que les packages par défaut de Sun n’est nécessaire à votre programme. Sinon vous devrez décider du niveau d’inclusion. Je conseille d’inclure toutes les classes et toutes les ressources, on perd un peu en taille du fichier, mais on est sûr que tout fonctionnera !
5) Créer un fichier MANIFEST
Cette étape n’est pas nécessaire dans tous les cas, par exemple si vous avez choisi "Basic" à l’écran (1), le fichier manifest ne sera par défaut pas créé. Par contre pour "Application" il est nécessaire: le fichier Manifest indique, entre autres, à l’interpréteur Java quelle classe contient la méthode main(), condition nécessaire à l’auto-exécution de l’archive.
Vous pouvez choisir d’inclure un Manifest que vous avez créé vous même, amis pourquoi se compliquer la vie quand JBuilder le génère tout seul comme un grand ?!
6) Spécifier la classe main()
Un package, une archive, peuvent contenir plusieurs classes implémentant une méthode main(). On définit ici laquelle des ces méthodes main() devra être signalée au Manifest. On laissera cochée la case "Use the main class specified in the default runtime" par défaut. Lors de la première exécution d’un programme (à moins que l’ossature de ce programme n’ait été créée par JBuilder lui-même), JBuilder vous demande quelle est la classe principale du programme, et c’est cette classe, contenant la méthode main() dans le cas d’une application, qui sera utilisée pour lancer le programme sous JBuilder (en runtime normal ou en debug), et qui sera ici considérée comme la classe principale du programme à signaler comme telle au Manifest.
7) Observer
On voit une nouvelle icône dans l’inspecteur d’objets. Notre archive s’appelle "Application", mais ne contient pas encore de fichier Jar. Pour créer réellement le fichier Jar nous devons "reconstruire" le programme.
8) Reconstruire
Pour "reconstruire" on peut soir faire un clic-droit sur l’icône "Application" et choisir "Reconstruire" (ou "Rebuild" en version US) afin de créer le fichier JAR. On peut aussi utiliser le bouton de la barre d’icônes.
Ceci est très pratique: à chaque compilation, JBuilder recrée automatiquement le fichier JAR. Un exemple de compilation ci-dessous où l’on voit que JBuilder est en train de créer l’archive. (j’ai dû m’y reprendre à plusieurs fois pour faire la capture d’écran tellement que la création de cette archive, pour notre petit programme exemple, est rapide !)
Tutoriel distribué pour le FAQ Java de Java-France www.java-france.com / www.jgflsoft.com
Réédité pour Valhalla GFBLOG
Écrit à Montpellier le 3 juillet 2001