我开始在Ubuntu中使用JUnit并尝试执行给定here的示例程序。我也按照相同链接中的说明进行操作。代码成功编译但是给出了运行时错误,如下所示:
Exception in thread "main" java.lang.NoClassDefFoundError: org/junit/runner/JUnitCore
at TestRunner.main(TestRunner.java:7)
Caused by: java.lang.ClassNotFoundException: org.junit.runner.JUnitCore
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
到目前为止,这就是我所拥有的。如果$CLASSPATH
变量未设置为其所需类的位置,则会发生此错误。
> echo $CLASSPATH
/home/webyog/workspace/JUNIT/junit-4.11.jar:.
我的java文件和类文件位于/home/webyog/JUNIT_WORKSPACE/
中,所有库和JUnit jar文件都在/home/webyog/workspace/JUNIT/
中。
我按顺序执行了这些:
javac TestJunit.java TestRunner.java -classpath /home/webyog/workspace/JUNIT/junit-4.11
(这会生成2个文件TestRunner.class
和TestJunit.class
)
java TestRunner -classpath $CLASSPATH
(这给出了错误)
我错过了什么?请帮忙。
答案 0 :(得分:1)
在您的问题中,您/home/webyog/workspace/JUNIT/junit-4.11.jar:.
$CLASSPATH
但请注明:
JUnit jar文件位于
/home/webyog/JUNIT/
(注意workspace
缺失)
这可以解释您所看到的错误。
尝试:
cd /home/webyog/JUNIT_WORKSPACE/
java -cp '/home/webyog/JUNIT/junit-4.11.jar:.' TestRunner
此外,您可能需要查看一些构建工具,以使您的生活更轻松(maven,ant,gradle,...)