首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取java.lang.ClassNotFoundException: org.testng.TestNG错误

获取java.lang.ClassNotFoundException: org.testng.TestNG错误
EN

Stack Overflow用户
提问于 2019-02-13 14:41:14
回答 3查看 5.2K关注 0票数 1

我正在尝试使用下面的代码从main方法中执行我的testng.xml文件。但是得到了一个NoClassDefFoundError。你知道是什么导致了这个问题吗?

代码语言:javascript
复制
    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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-02-14 11:59:05

我能够通过使用“maven-程序集-插件”和“maven-依赖-插件”来解决这个问题,然后在resources/meta文件夹中创建manifest.mf文件并添加以下信息。

代码语言:javascript
复制
Manifest-Version: 1.0
Class-Path: .
Main-Class: {PROVIDE THE MAIN CLASS HERE}
票数 1
EN

Stack Overflow用户

发布于 2019-02-13 15:28:09

这里的问题是,在执行jar时,您缺少了类路径上的依赖库,因为jar只有来自您项目的类。

你在这里需要的不是

  1. 使用所有依赖项构建一个可执行的jar

  1. 指定命令行上的依赖项

例如java -cp your.jar:lib/*

其中libs/*是通向依赖JAR的路径。

我推荐选项一,因为如果jar中包含所有依赖项,您可以在任何地方运行该jar。

票数 2
EN

Stack Overflow用户

发布于 2022-06-14 11:54:53

它与Testng库有关。添加库:右键单击项目->构建路径->配置生成路径->Java构建路径-> library->添加库->选择TestNG ->应用和关闭。

对我起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54672809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档