Java.lang.NoClassDefFoundError: org / hamcrest / SelfDescribing in Intellij
J'ai utilisé Intellij Idea 12 Community edition. J'essaie de créer un cas de test pour ma classe en créant un cas de test. Quand j'exécute mon cas de test, il est dit
java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:10)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:44)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:195)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 25 more
Comment exécuter le cas de test dans Intellij. J'ai inclus le fichier JAR junit4.11 dans mon module
3 réponses
Avez-vous inclus le fichier hamcrest-core-1.3.jar
dans votre classpath? Si non inclus signifie inclure ce pot et essayer une fois de plus.
Ajouter junit.jar à votre dépendance du projet. vous devrez peut-être également ajouter hamcrest.bocal en plus.
Ouvrez fichier - > structure du projet, cliquez sur Modules- > dépendances, ajoutez junit.pot.
Si vous rencontrez ceci (et quelques autres threads) sur cette erreur et que l'ajout du jar aux dépendances ne fonctionne pas, vous devrez ajouter au classpath java général.
J'ai rencontré cette erreur dans OSX où maven téléchargerait la dépendance, mais ne la trouverait pas en mode fork.
L'ajout de tous les jars hamcrest à Library / Java / Extensions a finalement résolu le problème quand rien d'autre ne le ferait.