Ubuntu下JUnit安装配置遇阻:无法找到指定主类求助
解决Ubuntu上JUnit无法运行的问题
嘿,作为Ubuntu新手遇到这种问题太正常了,我来一步步帮你搞定它!
首先咱们先理清你踩的几个小坑:
- 你运行的
org.junit.tests.AllTests根本不是能直接调用的类(那是JUnit团队自己用来测试框架的内部类,没包含在apt安装的包里) - 你的CLASSPATH加了没必要的路径,还缺了JUnit必须的依赖包
- 依赖CLASSPATH环境变量不如直接用
-cp参数靠谱,新手很容易在这里踩坑
第一步:补上JUnit的核心依赖
JUnit 4需要依赖hamcrest-core才能正常运行,你之前没装这个,所以哪怕找到了junit.jar也会报错。先安装它:
sudo apt-get install libhamcrest-java
第二步:用自定义测试类验证安装
别再纠结那个不存在的AllTests了,咱们自己写个极简的测试类来验证:
- 创建
SampleTest.java文件,内容如下:
import org.junit.Test; import static org.junit.Assert.assertEquals; public class SampleTest { @Test public void testBasicAddition() { assertEquals(2, 1 + 1); } }
- 编译这个测试类,记得指定JUnit的jar包路径:
javac -cp /usr/share/java/junit.jar SampleTest.java
- 运行测试,这时候要同时指定junit和hamcrest的jar包,还要加上当前目录(因为你的测试类在当前目录):
java -cp /usr/share/java/junit.jar:/usr/share/java/hamcrest-core.jar:. org.junit.runner.JUnitCore SampleTest
如果一切正常,你会看到测试通过的输出,类似这样:
JUnit version 4.13.2 . Time: 0.001 OK (1 test)
为什么之前的方法不行?
- 关于
org.junit.tests.AllTests:这个类是JUnit团队的内部测试类,并没有包含在Ubuntu官方源的junit包中,所以你肯定找不到它。 - 关于CLASSPATH:你加的
/usr/bin完全没必要,那是存放可执行命令的路径,不是Java类或jar包的路径。而且Ubuntu的Java环境有时候会忽略CLASSPATH环境变量,用-cp参数直接指定类路径更可靠。 - 关于依赖:JUnitCore类依赖hamcrest包里的类,没装hamcrest的话,即使junit.jar在路径里,也会报类找不到的错误。
(可选)优化日常使用
如果你不想每次都敲这么长的命令,可以把常用的jar包路径定义成一个变量:
# 加到你的~/.bashrc里 export JUNIT_CP="/usr/share/java/junit.jar:/usr/share/java/hamcrest-core.jar:."
然后执行source ~/.bashrc生效,之后运行测试就可以简化成:
java -cp $JUNIT_CP org.junit.runner.JUnitCore SampleTest
内容的提问来源于stack exchange,提问作者bab354
相关产品推荐
相关产品推荐

