我有一个使用以下命令运行的项目: java -cp ".\target\classes;lib\*;" org.testng.TestNG ParallelTestXML.xml
它运行正常。我通过ssh上传了这个项目,并希望在远程计算机(awsec2示例)上运行它,但是我得到了 Error: Could not find or load main class org.testng.TestNG
. 即使我在同一个系统中使用相同的命令,它也会失败 Project
文件夹。
当所有依赖项都包含在 Project
文件夹中的 lib
文件夹怎么找不到呢 testNG
. 我可以在本地运行这个项目没有问题。
当我尝试只运行java类时,甚至会遇到同样的错误,忽略testng部分,就像这样 java -cp "./target/classes/;lib/*" RealPackage.Controller
我得到一个错误: Error: Could not find or load main class RealPackage.Controller
.
在这两种情况下,我都在本地进行了测试,效果良好。我通过ssh上传的项目就是整个项目;它应该是相同的,所以这些命令不起作用让我很困惑。
您可以看到两个项目位置具有相同的结构。左边是我的本地电脑,右边是aws服务器上的电脑:
编辑:所以过了一段时间我意识到这是因为我试图在linux机器上使用WindowsSytnax。因此,现在我为linux amchine提出了以下建议: java -cp .:/target/classes/:lib/* org.testng.TestNG ParallelTestXML.xml
它现在找不到位于 /target/classes
位置。
1条答案
按热度按时间qco9c6ql1#
结果表明,列出类路径的顺序很重要。所以我不得不重新安排一下,结果成功了。