java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing в Intellij

Я использовал версию Intellij Idea 12 Community. Я пытаюсь создать тестовый пример для своего класса, создав тестовый пример. Когда я запускаю свой тестовый пример, он говорит

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

Как мне запустить тестовый пример в Intellij. Я включил jar-файл junit4.11 в свой модуль.


person jackyesind    schedule 11.07.2013    source источник
comment
Изменение моего JUNIT 4.12 на 4.8 сработало хорошо. Также добавьте банку в путь к классам в структуре проекта вашей IDE. После добавления скомпилируйте тестируемый класс и попробуйте запустить тестовый файл. Я надеюсь, что это работает хорошо тогда.   -  person Dhiraj Gandhi    schedule 25.09.2017


Ответы (4)


Вы включили файл hamcrest-core-1.3.jar в свой путь к классам? Если не включено, значит включите эту банку и попробуйте еще раз.

person muthu    schedule 11.07.2013

добавьте junit.jar в зависимость вашего проекта. вам также может понадобиться добавить hamcrest.jar в дополнение.

Откройте Файл->Структура проекта, щелкните Модули->Зависимости, добавьте junit.jar.

person bowman han    schedule 16.06.2014
comment
Проголосовал за, потому что мне нужно было добавить подколенный гребень таким образом, но вы меня туда :) - person th3morg; 13.10.2014

Последняя версия hamcrest-all доступна по адресу: https://search.maven.org/search?q=a:hamcrest-all

Загрузите эту версию (в отличие от hamcrest-core), и это должно сработать.

person Fabrice Guillaume    schedule 01.12.2018
comment
Это сработало, но не уверен, почему hamcrest-core.jar не работает - person Darshit Patel; 10.06.2021

Если вы столкнулись с этой (и несколькими другими темами) с этой ошибкой и добавление jar к зависимостям не работает, вам нужно будет добавить в общий путь к классам java.

Я столкнулся с этой ошибкой в ​​OSX, где maven загружал зависимость, но не находил ее в режиме форка.

Добавление всех банок для подколенных сухожилий в Library/Java/Extensions, наконец, решило проблему, когда ничто другое не помогло.

person Brenn    schedule 30.03.2016
comment
Это сработало и для меня, я не знаю, почему добавление зависимостей Maven не помогло бы. - person Sam P; 05.05.2016