我正在使用Win 7,并从以下位置下载了Junit 4.13和hamcrest 2.1 https://github.com/junit-team/junit4/wiki/Download-and-Install
并将它们放在C下名为JUnit的文件夹中。
我添加了值C:\ JUnit的变量:JUNIT_HOME。
我还向我的类路径中添加了以下内容:
%classpath%;.;C:\Program Files\Java\jre1.8.0_171\bin;%CLASSPATH%;
%JUNIT_HOME%\junit-4.13-beta-1;.; %JUNIT_HOME%\hamcrest-core-2.1.jar;
在https://github.com/junit-team/junit4/wiki/Getting-started之后, 我将Java文件Calculator.java和CalculatorTest.java添加到我的练习文件夹中。
命令
javac -cp .;junit-4.13-beta-1.jar;hamcrest-core-2.1.jar CalculatorTest.java
成功执行。但是,命令
java -cp .;junit-4.13-beta-1.jar;hamcrest-core-2.1.jar org.junit.runner.JUnitCore CalculatorTest
失败,给出类似错误消息
Exception in thread "main" java.lang.NoClassDefFoundError:
org/hamcrest/SelfDescribing
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.junit.runner.Computer.getSuite(Computer.java:28)
at org.junit.runner.Request.classes(Request.java:77)
at org.junit.runner.JUnitCommandLineParseResult.createRequest(JUnitComma
ndLineParseResult.java:116)
at org.junit.runner.JUnitCore.runMain(JUnitCore.java:77)
at org.junit.runner.JUnitCore.main(JUnitCore.java:36)
Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 17 more
请注意,我已经检查过java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing之类的帖子,但它们没有帮助。你能帮忙吗?
答案 0 :(得分:2)
正确的hamcrest jar是hamcrest-2.1.jar
,而不是hamcrest-core-2.1.jar
。您可以从here下载它。
根据提到的guide,假定您已在与项目相同的程序包中下载了jar文件:
创建一个新文件夹junit-example并下载当前文件夹 JUnit发布页面中的junit-4.XX.jar,并将Hamcrest移至此文件夹。
如果您决定单独放置jar,则可能需要相应地更正命令行以从%JUNIT_HOME%
中获取这些jar文件:
java -cp .;%JUNIT_HOME%\junit-4.13-beta-1.jar;%JUNIT_HOME%\hamcrest-core-2.1.jar org.junit.runner.JUnitCore CalculatorTest