我正在尝试使用下面的代码从 main 方法执行我的 testng.xml 文件。但是得到一个 NoClassDefFoundError。知道是什么导致了这个问题吗?
public static void main( String[] args )
{
TestNG testng = new TestNG();
List<String> suites = Lists.newArrayList();
suites.add("testng.xml");
testng.setTestSuites(suites);
testng.run();
}
Exception in thread "main" java.lang.NoClassDefFoundError: org/testng/TestNG
at com.automation.app.App.main(App.java:21)
Caused by: java.lang.ClassNotFoundException: org.testng.TestNG
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
最佳答案
这里的问题是,当您执行 jar 时,您在类路径上缺少依赖库,因为 jar 只有您项目中的类。
这里你需要的是
- build an executable jar with all the dependencies
或
- specify the dependencies on command line
例如
java -cp your.jar:lib/*
其中 libs/*
是您的依赖 JAR 的路径
我推荐选项一,因为如果 jar 包含所有依赖项,您可以在任何地方运行该 jar。
关于java - 获取 java.lang.ClassNotFoundException : org. testng.TestNG 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54672809/