Eclipse4.5_JAR_Deployment.docx HEIA-FR / Jacques BAPST 4
ADAPTATION DU FICHIER MANIFEST
Si l'on souhaite adapter le fichier Manifest (pour ajouter ou modifier le classpath par exemple), il faut
demander à Eclipse de l'enregistrer dans le Workspace (par défaut, il ne se trouvera que dans le JAR).
Cela se fait durant la dernière étape de l'assistant de création du fichier JAR (décrit précédemment). Il suffit
de cocher la case Save the manifest in the workspace, de choisir un nom de fichier (par exemple
manifest.mf) et un emplacement dans le Workspace.
Pour que le contenu de ce fichier Manifest soit pris en compte lors de chaque génération du fichier JAR, il faut
également cocher la case Reuse and save the manifest in the workspace.
Après exécution de l'assistant, le fichier Manifest sera créé à l'emplacement choisi et apparaitra dans le
Package explorer. Ce fichier pourra ensuite être édité par Eclipse (double-clic sur le fichier) et sauvegardé.
Attention, il ne sera pris en compte que lors de la prochaine génération du fichier JAR !
ACCÈS AUX RESSOURCES DANS UN FICHIER JAR
Si l'on place des ressources (images, logos, sons, etc.) dans un fichier JAR, l'extraction de ces ressources
s'effectue en utilisant la méthode getResource() de la classe Class qui renvoie l'URL de la ressource ou en
utilisant la méthode getResourceAsStream() qui renvoie l'InputStream de la ressource ou en utilisant un
constructeur ou une méthode spécifique à la ressource. C'est généralement le Class Loader qui se chargera de
localiser la ressource demandée sur la base du classpath.
Exemple : URL fUrl = getClass().getResource("/resources/Logo.gif");
Image skyImg = new Image("/resources/bluesky.png");
ou, dans une méthode statique :
URL fUrl = MyClass.class.getResource("/resources/Logo.gif");
Cette technique fonctionne si la ressource se trouve
dans un sous-répertoire qui fait partie d'une des branches du classpath
(c'est-à-dire dont le répertoire parent figure dans le classpath)
dans le fichier JAR (qui peut également être structuré de manière arborescente,
avec des sous-répertoires, comme tout fichier ZIP).
Si une partie des ressources se trouvent à l'extérieur du fichier JAR, ne pas oublier à mettre à jour le classpath
dans le fichier Manifest en ajoutant la ligne Class-Path: p1 p2 p3 ... (liste des répertoires ou fichiers JAR externes,
séparés par un espace).
Attention : la recherche de ressources dans le JAR est sensible à la casse (minuscules/majuscules).
Un exemple plus complet d'accès aux ressources figure à la fin de ce document.
LANCEMENT DE L'APPLICATION SUR LA MACHINE CIBLE
Une application déployée sous forme de fichier JAR nécessite (comme pour toute application Java) qu'une
machine virtuelle Java ait été préalablement installée sur la machine cible.
Si c'est le cas, le lancement de l'application s'effectuera (cela dépend de l'association de l'extension de fichier
.jar avec le lancement de la machine virtuelle Java) :
simplement par un double-clic sur le fichier JAR (cas normal)
ou, si ça ne fonctionne pas,
en ouvrant une fenêtre de commande (Command Prompt) et en lançant la commande :
C:\Temp> java -jar Fichier.jar
ou, si ça ne fonctionne toujours pas,
en ouvrant une fenêtre de commande (Command Prompt) et en se plaçant dans le répertoire d'installation
de la machine virtuelle (par exemple : C:\Program Files\Java\jre1.8.0_45\bin\) et en lançant la
commande : C:\Program Files\Java\jre1.8.0_45\bin> java -jar Fichier.jar
Remarque : Il est naturellement possible d'adapter la variable d'environnement PATH et/ou de créer un fichier
de commandes permettant de lancer l'application ou de rétablir l'association entre l'extension
.jar et la machine virtuelle Java (...\bin\javaw.exe).