La compilation java avec classpath n'est pas de trouver tous les fichiers jar
J'ai un dossier lib avec de nombreux .les fichiers jar et l'un des fichiers que j'ai est mail.jar (pour javax.mail)
Quand je compile mon code source, j'utilise
javac -cp .:../lib/ server/MyFile.java
Et puis je reçois un tas d'erreurs
server/MyFile.java:22: error: package javax.mail.internet does not exist
import javax.mail.internet.InternetAddress;
^
server/MyFile.java:23: error: package javax.mail.internet does not exist
import javax.mail.internet.MimeMessage;
^
server/MyFile.java:24: error: package javax.mail does not exist
import javax.mail.Authenticator;
^
etc
etc
Cependant javax.le courrier doit être à l'intérieur (via mail.jar). J'ai aussi activation.jar à l'intérieur du dossier lib. Notez que cette mail.jar fichier que j'ai téléchargé aujourd'hui depuis le site de sun. Elle est récente.
Ce qui pourrait être mauvais?
Mise à JOUR:
J'ai ajouté tous les fichiers jar manuellement sur le chemin de la classe, et il compile bien. Mais maintenant quand je le lance MyFile.java, à l'aide de cette commande
java server.MyFile
J'obtiens cette erreur:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/Authenticator
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2442)
at java.lang.Class.getMethod0(Class.java:2685)
at java.lang.Class.getMethod(Class.java:1620)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:492)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:484)
Caused by: java.lang.ClassNotFoundException: javax.mail.Authenticator
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 6 more
- Je suis prêt à parier u que seul problème est le pot n'étaient pas dans le classpath ,sur courir seul, nous pouvons l'utiliser , java -cp :/chemin/vers/JARS/ , aussi nous n'avons besoin que les pots sur la compilation de mate @CodeGuy
- le pot est en effet sur le chemin de la classe...
- okies bien .. u peut ajouter plus d'info sur la trace de la pile de votre mise à jour s'il vous plaît.
- veuillez voir le jour. plein de trace de pile inclus.
- veuillez voir mon premier commentaire mate @CodeGuy java -cp :/chemin/vers/JARS/ MyFile doit travailler pour vous
- désolé...je n'avais tout simplement pas comprendre votre anglais
- okies.. va continuer à améliorer 🙁 @CodeGuy
Vous devez vous connecter pour publier un commentaire.
Depuis la version 6, vous pouvez utiliser chemin de classe de caractères génériques.
Voir aussi cette Q&A.
java
ligne de commande?java
de commande.Vous pouvez définir
CLASSPATH=/path/to/java/jar;/path/to/other/jar
(notez le point-virgule) pour Unix.Aussi regarder http://javarevisited.blogspot.in/2013/02/windows-8-set-path-and-classpath-java-windows-7.html