2009-11-22 3 views
3

J'essaie d'envoyer un courrier électronique en utilisant l'API JavaMail. jdk 1.5 est installé dans mon répertoire personnel à partir d'un fichier binaire auto-extractible. Je suis sur Ubintu 9.10Compilé OK mais NoClassDefFoundError lors de l'exécution

Je compile le programme en utilisant la commande suivante:

~/jdk1.5.0_22/bin/javac -classpath ~/jdk1.5.0_22/jre/lib/javamail-1.4. 3/mail.jar: ~/jdk1.5.0_22/jre/lib/jaf-1.1.1/activation.jar hw.java

Il compile OK. Comme vous pouvez le voir, j'ai spécifié le chemin vers mail.jar et activation.jar Maintenant, j'essaie de lancer l'application en utilisant la commande suivante:

~/jdk1.5.0_22/bin/java -classpath ~/jdk1. 5.0_22/jre/lib/jaf-1.1.1/activation.jar: ~/jdk1.5.0_22/jre/lib/javamail-1.4.3/mail.jar :. HelloWorldApp

je reçois un java.lang.NoClassDefFoundError d'exception: javax/mail/Adresse

Pourquoi peut-il trouver des cours lors de la compilation et ne peut pas le faire lors de l'exécution? Comment exécuter correctement mon application?

Merci à l'avance

Répondre

2

Cette classe doit venir de votre mail.jar. Je ne suis pas sûr que votre classpath soit analysé correctement. Le tilde (~) est une fonction shell et doit être étendu avant d'être envoyé au processus Java. Avez-vous essayé de supprimer le ~ et de le remplacer par /home/{whatever}? Je pense que c'est le problème.

+0

la classe vient de mail.jar, pas d'activation – Bozho

+0

Ah. Tu as raison. Corrigé –

+0

Oui, vous avez raison. J'ai remplacé ~ et ça a bien fonctionné. Bien qu'il ait compilé ok avec ~ – CITBL

Questions connexes