Salut :D je suis nouveau sur le Forum, Et j’aimerais savoirs comment ajouter un jar dans le classpath sous Linux/UNIX.
Merci.
Version imprimable
Salut :D je suis nouveau sur le Forum, Et j’aimerais savoirs comment ajouter un jar dans le classpath sous Linux/UNIX.
Merci.
Le classpath est défini de plusieurs manières. Si le but est d'avoir la librairie à l'exécution d'un programme que tu as compilé en ligne de commande, la commande -cp suffit
et pour exécuterCode:javac -cp .:/chemin/vers/librairie.jar mon/package/Main.java
Si tu travaille avec un IDE rajoute simplement le jar au build path. Par exemple sous eclipse: clic droit sur le jar, build path -> add to build pathCode:javac -cp .:/chemin/vers/librairie.jar mon.package.Main
Si tu crée un jar de ton application, mais la librairie dans un répertoire, par exemple "lib" à part des sources et référence le chemin relatif vers ce répertoire dans l'entrée class-path du MANIFEST.MF
Re,
J'arrive bien a compiler, mais je ne comprend pas la signification mon.package.Main
en sachant que le répertoire de mon projet et le fichier jar ce trouvent tout les deux dans le dossier rootCode:
1
2
3
4
5 root@bt:~# javac -cp .:/javamail-1.4.7/mail.jar BoomMail/src/BoomMail.java root@bt:~# javac -cp .:/javamail-1.4.7/mail.jar BoomMail/src/BoomMail.class javac: invalid flag: BoomMail/src/BoomMail.class Usage: javac <options> <source files> use -help for a list of possible options
Apparemment c'est pas le chemin du fichier .class mais quoi ?
Merci :)
Salut,
C'est parce qu'il y a une petite faute de frappe dans le message de @Tchize_ la commande pour exécuter :
Il fallait lire :
Par contre, on le voit, on met le nom de la classe. On peut mettre des / au lieu des ., mais on ne met jamais l'extension .class comme tu as fais.Code:java -cp .:/chemin/vers/librairie.jar mon.package.Main
Au sujet du classpath (ce qu'on met en paramètre du switch -cp) : il ne contient pas seulement les jar, mais doit également contenir tous les package de classes que tu utilises, en particulier ta classe BoomMail (c'est le sens du . dans l'exemple donné par @Tchize_, qui ne fonctionne que lorsqu'on lance java dans le dossier ou se trouve le package qui contient la classe "main", donc ce lui qui contient l'arborescence mon/package/Main.class dans l'exemple donné).
Ta classe est dans le package default, et tu lances ta commande alors que tu es dans le dossier root, donc la commande doit être :
Code:java -cp BoomMail/src/:/javamail-1.4.7/mail.jar BoomMail
Re salut, et désolé pour le retard. si non l’exécution marche bien, merci de votre aide :)