2014-10-17 142 views
1

我是新来的从终端运行java,我目前正试图在终端中运行JUnit测试类。我的java类的基本结构是在终端运行JUnit测试

JavaProject 
    Queue.java 
    QueueTests.java 
    junit.jar 
    RunTests 

RunTests是一个具有以下代码的脚本。

#!/bin/sh 
javac Queue.java 
CLASSPATH=".:junit.jar:"; export CLASSPATH 
javac QueueTests.java 
java org.junit.runner.JUnitCore QueueTests 

然而,当我运行它,我总是得到最后一行是“在线程异常‘主要’java.lang.NoClassDefFoundError”的错误。如果我注释掉最后一行,那就没有错误了。因此,它似乎无法找到QueueTests.class。然而,看着这个文件夹,在我运行脚本之后,很明显Queue.class和QueueTests.class都在那里。我不确定我做错了什么。任何帮助真的会被赞赏。

+0

可能的复制HTTP ://stackoverflow.com/q/2235276/1161025。 – maciek 2016-03-07 22:57:05

回答

0

JavaProject文件夹,执行以下命令:

java -cp .:./junit.jar org.junit.runner.JUnitCore QueueTests 

适应你的脚本,这将是

#!/bin/sh 
javac Queue.java QueueTests.java 
CLASSPATH=".:junit.jar:" 
java -cp $CLASSPATH org.junit.runner.JUnitCore QueueTests 

参见以下问题:的How to run JUnit test cases from the command line

+2

当我这样做时,我得到了完全相同的问题。线程“main”java.lang.NoClassDefFoundError中的异常 – user3684980 2014-10-17 05:28:41