JUnit示例程序编译但给出运行时错误

时间:2013-12-31 06:12:02

标签: java linux junit classpath

我开始在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.classTestJunit.class

java TestRunner -classpath $CLASSPATH

(这给出了错误)

我错过了什么?请帮忙。

1 个答案:

答案 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,...)