junit org/hamcrest/Matchers 上的 NoClassDefFoundError
NoClassDefFoundError on org/hamcrest/Matchers on junit
我在 junit-dep jar 之上安装了 hamcrest-all-1.3,但当我 运行 使用 ant 时仍然出现此异常。然而,Eclipse 足够智能,可以解决这个冲突并且测试有效。我的类路径上没有 mockito,但是,确实有 jmockit 和 easymock,我相信这不是这里的问题。这是断言:
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.lessThanOrEqualTo;
/* ...
...
... */
assertThat(10, lessThanOrEqualTo(20));
例外是
[junit] org/hamcrest/Matchers
[junit] java.lang.NoClassDefFoundError: org/hamcrest/Matchers
解决此类问题的一种方法:在 eclipse 中,将光标放在 "assertThat" 上并按 F3。
这会将您带到相应 class/method 后面的来源。可能你最终得到一个空的 window,告诉你:
Class 文件编辑器
找不到来源
然后告诉你实际上要找到assertThat的JAR文件的名称;在我的例子中是 junit-4.11.jar.
长话短说:检查您的构建设置是否包含 JUnit jar。
如 Stefan 所述,您需要两个 hamcrest 罐子才能解决此问题。
junit-4.12.jar、hamcrest-core-1.3.jar 和 hamcrest-library-1.3.jar
我在 junit-dep jar 之上安装了 hamcrest-all-1.3,但当我 运行 使用 ant 时仍然出现此异常。然而,Eclipse 足够智能,可以解决这个冲突并且测试有效。我的类路径上没有 mockito,但是,确实有 jmockit 和 easymock,我相信这不是这里的问题。这是断言:
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.lessThanOrEqualTo;
/* ...
...
... */
assertThat(10, lessThanOrEqualTo(20));
例外是
[junit] org/hamcrest/Matchers
[junit] java.lang.NoClassDefFoundError: org/hamcrest/Matchers
解决此类问题的一种方法:在 eclipse 中,将光标放在 "assertThat" 上并按 F3。
这会将您带到相应 class/method 后面的来源。可能你最终得到一个空的 window,告诉你:
Class 文件编辑器
找不到来源
然后告诉你实际上要找到assertThat的JAR文件的名称;在我的例子中是 junit-4.11.jar.
长话短说:检查您的构建设置是否包含 JUnit jar。
如 Stefan 所述,您需要两个 hamcrest 罐子才能解决此问题。 junit-4.12.jar、hamcrest-core-1.3.jar 和 hamcrest-library-1.3.jar