Тесты Junit в Eclipse терпят неудачу с java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing

#java #eclipse #junit

#java #eclipse #junit

Вопрос:

Мои тесты проходили нормально, но затем мне пришлось переустановить Eclipse. Теперь даже самый простой тест завершается ошибкой со следующей ошибкой:

java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing

Я пытался следовать советам в ответах на похожие вопросы, но я не могу устранить ошибку. Я добавил библиотеку Junit в проект, я попытался добавить junit-4.11.jar и junit-4.10.jar к пути к классу, и я попытался добавить hamcrest-core-1.3.jar к пути к классу.

Я использую Eclipse 4.3.2 на Mac под управлением OS 10.9 с версией Java «1.6.0_65»

Вот трассировка из Eclipse:

java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing на java.lang.ClassLoader.defineClass1(собственный метод) в java.lang.ClassLoader.defineClassCond(ClassLoader.java:637) в java.lang.ClassLoader.defineClass(ClassLoader.java:621) в java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) на java.net.URLClassLoader.defineClass(URLClassLoader.java:283) на java.net.URLClassLoader.access$ 000(URLClassLoader.java:58) на java.net.URLClassLoader$ 1.run(URLClassLoader.java:197) наjava.security.AccessController.Допривилегирован (собственный метод) в java.net.URLClassLoader.FindClass(URLClassLoader.java:190) в sun.misc.Launcher $ExtClassLoader.FindClass(Launcher.java:229) в java.lang.ClassLoader.loadClass(ClassLoader.java:306) в java.lang.ClassLoader.loadClass(ClassLoader.java:247) в org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:10) в org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) в org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) в org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) в org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26) в org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.(JUnit4TestReference.java:33) в org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.(JUnit4TestClassReference.java:25) в org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48) в org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197), вызванный: java.lang.Исключение ClassNotFoundException: org.hamcrest.Самоописание в java.net.URLClassLoader $1.запустите (URLClassLoader.java:202) в java.security.AccessController.Допривилегирован (собственный метод) в java.net.URLClassLoader.FindClass(URLClassLoader.java:190) в sun.misc.Launcher $ExtClassLoader.FindClass(Launcher.java:229) в java.lang.ClassLoader.loadClass(ClassLoader.java:306) в java.lang.ClassLoader.loadClass(ClassLoader.java:247) … еще 25

Есть предложения?

Спасибо

Ответ №1:

Попробуйте один раз добавить с hamcrest-all-1.3.jar в пути к классу

Комментарии:

1. Я щелкнул правой кнопкой мыши по проекту, выбрал путь сборки -> настроить путь сборки -> библиотеки -> добавить внешние банки и добавил hamcrest-all-1.3.jar . К сожалению, я все еще получаю java.lang. NoClassDefFoundError: org/hamcrest/SelfDescribing

Ответ №2:

Я смог решить свою проблему, убедившись, что конфигурация запуска имеет hamcrest-all-1.3.jar в пути к классу начальной загрузки