在Linux系统运行testng.xml遇错:无法找到org.testng.TestNG主类
解决Linux下运行TestNG命令提示找不到主类的问题
这个问题我碰到过很多次啦,核心原因就是Windows和Linux在路径格式、类路径分隔符以及环境变量引用方式上的差异,导致TestNG的jar包没被正确加载到类路径里,所以才会抛出Error: Could not find or load main class org.testng.TestNG错误。咱们来把Windows的命令改成适配Linux的版本:
关键差异点先理清楚
- 路径分隔符:Windows用
\,Linux必须用/ - 类路径分隔符:Windows用
;,Linux换成: - 环境变量引用:Windows用
%变量名%,Linux改成$变量名
修正后的完整命令
首先确保你已经设置了ProjectPath环境变量(如果没设置,先执行export ProjectPath="/你的项目绝对路径"),然后运行:
java -cp "$ProjectPath/jars/*:$ProjectPath/bin/*:$ProjectPath/external/tools/*" org.testng.TestNG $ProjectPath/testng.xml
额外注意事项
- 如果不想设置环境变量,直接把
$ProjectPath替换成项目的真实绝对路径即可,比如:java -cp "/home/anu/my-project/jars/*:/home/anu/my-project/bin/*:/home/anu/my-project/external/tools/*" org.testng.TestNG /home/anu/my-project/testng.xml - 一定要确认
jars目录里确实包含testng.jar,要是TestNG的jar在其他目录,记得把那个目录也加到类路径里,不然还是会出现找不到主类的问题。
内容的提问来源于stack exchange,提问作者Anu Chawla
相关产品推荐
相关产品推荐

