2010-07-27 2 views
0

Je souhaite utiliser une bibliothèque externe (par exemple, Google's Gava) pour mon programme Java. J'utilise Eclipse, j'ai donc téléchargé jar (et source) de Guava et j'ai suivi Adding a Java library to the project classpath pour l'ajouter à Eclipse et au buildpath de mon projet.NoClassDefFoundError lors de l'exécution à partir de la ligne de commande

Cela fonctionne très bien: je peux exécuter le programme d'Eclipse et du pot runnable exporter d'Eclipse, mais je reçois une erreur lorsque je tente de lancer directement à partir du bin/ dir, comme je l'habitude de faire avant:

Exception in thread "main"
java.lang.NoClassDefFoundError: com/google/common/base/Joiner

Que dois-je faire?

+0

montrez-nous la commande que vous utilisiez avant. il y a de fortes chances que vous n'ayez pas ajouté le pot à votre chemin de classe. –

+0

Si vous mettez à jour votre question avec plus d'informations, elle sera repoussée en haut de la page Active où elle obtiendra plus de vues. –

Répondre

1

Si vous utilisez le fichier de classe directement à partir du répertoire bin du projet, vous devrez peut-être spécifier le classpath manuellement: C:> java -classpath C:\java\MyClasses;C:\java\OtherClasses MyClassHere

+0

Je ne peux pas le faire fonctionner, maintenant il ne peut même pas trouver ma classe principale. Où dois-je pointer le chemin de la classe? La racine de toutes les classes est-elle correcte? La poubelle de chaque paquet? –

+0

Vous pointez le chemin de classe à la bibliothèque de goyave. Vous allez dans votre répertoire bin comme d'habitude et exécutez avec la même commande, en ajoutant simplement le '-classpath C: \ libs \ guava.jar' à lui – Poindexter

+0

merci Poindexter –

0

Avez-vous essayé java -cp guava.jar ...?

1

youll doivent dire Java où trouver la bibliothèque:

java -cp <path-to-lib-jar>;myJar.jar my.package.MyMainClass 

ou si vous voulez utiliser un fichier jar que vous pouvez définir le chemin de la bibliothèque dans le MANIFESTE contrôle here pour une explication.

+1

Vous ne pouvez pas utiliser -classpath (ou -cp) avec l'option -jar. Ce sera ignoré. – erickson

+0

droite, merci pour le commentaire, j'ai corrigé l'exemple – fasseg

Questions connexes