123 votes

java.lang.NoClassDefFoundError : org/hamcrest/SelfDescribing

En cours d'exécution junit test en eclipse J'obtiens ceci Exception :

java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing

J'ai ajouté junit.jar le fichier de la bibliothèque.

J'ai essayé différentes versions de junit.jar : 4.4 , 4.8 etc.

Comment puis-je corriger cette exception ?

3voto

Michael Ogala Points 51

Juste au cas où quelqu'un ici utilise netbeans et a le même problème, tout ce que vous avez à faire est de

  • Cliquez à droite sur TestLibraries
  • Cliquez sur Ajouter une bibliothèque
  • Sélectionnez JUnit et cliquez sur ajouter une bibliothèque
  • Répétez le processus mais cette fois-ci, cliquez sur Hamcrest et cliquez sur ajouter une bibliothèque.

Cela devrait résoudre le problème

3voto

Saint Points 564

Ce problème est dû au fait que votre classpath manque hamcrest-core-1.3.jar. Pour résoudre ce problème, ajoutez hamcrest-core-1.3.jar comme vous ajoutez junit-4.XX.jar dans votre classpath.

Au début, je rencontre aussi ce problème, mais après m'être référé à la site officiel et ajouter hamcrest-core-1.3.jar dans le classpath avec la ligne de commande, cela fonctionne enfin correctement.

javac -d ../../../../bin/ -cp ~/libs/junit-4.12.jar:/home/limxtop/projects/algorithms/bin  MaxHeapTest.java 

java -cp ../../../../bin/:/home/limxtop/libs/junit-4.12.jar:/home/limxtop/libs/hamcrest-core-1.3.jar org.junit.runner.JUnitCore com.limxtop.heap.MaxHeapTest

3voto

ayush agrahari Points 89

Vous devez ajouter le JAR hamcrest-core au classpath comme décrit ici : https://github.com/junit-team/junit4/wiki/Download-and-Install

2voto

Ryan Stewart Points 46960

En règle générale, assurez-vous toujours que hamcrest se trouve avant toute autre bibliothèque de test dans le classpath, car beaucoup de ces bibliothèques incluent des classes hamcrest et peuvent donc entrer en conflit avec la version de hamcrest que vous utilisez. Cela résoudra la plupart des problèmes du type de ceux que vous décrivez.

2voto

estudiante Points 41

La façon la plus simple de résoudre le problème est de copier la dernière version de hamcrest-code.jar dans votre CLASSPATH, c'est-à-dire le fichier dans lequel vous stockez les autres fichiers .jar nécessaires à la compilation et à l'exécution de votre application.

qui pourrait être par exemple C:/ant/lib

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X