【问题标题】:JNI error has occurred. Please check your installation发生 JNI 错误。请检查您的安装
【发布时间】:2015-05-07 21:58:18
【问题描述】:

我正在尝试使用 TestNG 运行一个非常简单的测试,但我收到了此错误消息。我尝试阅读以前的答案,但它对我不起作用。如果有人可以帮助我,我会很高兴,因为我只是 TestNG 的初学者。这是错误信息:

Exception in thread "main" java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.lang.Class.privateGetMethodRecursive(Unknown Source)
    at java.lang.Class.getMethod0(Unknown Source)
    at java.lang.Class.getMethod(Unknown Source)
    at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.beust.jcommander.ParameterException
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 7 more

【问题讨论】:

  • 您解决了这个问题吗?请分享如何??
  • @kaustubh93 看看我的回答。它解决了我的这个错误问题。

标签: eclipse-plugin testng


【解决方案1】:

是的,有一个 issuetestNG 在 Eclipse 上运行。从这篇文章开始,您可以尝试通过在构建路径中添加 jcommander jar file 来修复错误,然后从 eclipse 运行您的 testNG 套件。

如果你想使用命令提示符或终端运行,这里是如何在 MAC 上执行 -

java -cp "PATH/TO/TESTNG.jar:PATH/TO/jcommander-1.7.jar" org.testng.TestNG testng.xml

同样地替换你的 windows 路径,你的测试套件将使用命令提示符运行,没有任何错误。

【讨论】:

  • 那个冒号应该是分号:PATH/TO/TESTNG.jar;PATH/TO/jcommander-1.7.jar
【解决方案2】:

这通常发生在您的 JDK 版本和 JRE 版本不兼容或未安装所需的 JRE 版本时。

要纠正错误,请使用 窗口 -> 首选项 -> 编译器 -> 编译器合规级别 并将 JRE 版本更改为现有 JRE 版本。

【讨论】:

  • 正是我想要的
【解决方案3】:

https://github.com/cbeust/testng-eclipse/issues/140

将 jcommdar.jar 添加到类路径,然后运行: java -cp "C:\TestNG\testng.jar;C:\TestNG\jcommander.jar" org.testng.TestNG testng.xml

【讨论】:

    【解决方案4】:

    为了解决这个问题,我们需要下载 jcommander1.7 jar 文件。 下载jar文件访问下面的url并获取jcommander1.7 jar文件

    http://www.java2s.com/Code/Jar/j/Downloadjcommander17jar.htm

    jcommander1.7 jar文件实现流程-

    项目右键->属性->点击库->点击添加外部jars->导航到jcommander1.7 jar文件下载的位置。

    并运行您的脚本,现在您的脚本将成功运行。

    【讨论】:

    • 如果我们使用Maven项目可以解决这个问题。
    【解决方案5】:

    jcommdar.jar 添加到classpath 然后运行:

    java -cp "C:\TestNG\testng.jar;C:\TestNG\jcommander.jar" org.testng.TestNG testng.xml
    

    这对我真的很有帮助。

    【讨论】:

    • 你能解释一下怎么做吗? Eclipse 在哪里?
    【解决方案6】:

    我在运行我的 testng.xml 时遇到了类似的错误。我替换了本地用户从他的本地路径中包含(构建路径)的 selenium 服务器 jar。将 jar 文件复制到项目文件夹 (lib) 并将它们包含在您的项目中。这对我有用。

    【讨论】:

      【解决方案7】:

      在尝试使用 Eclipse IDE 以TestNG Suite 运行 DemoTest.xml 文件时,我也遇到了类似的错误。

      Exception in thread "main" java.lang.NoClassDefFoundError: org/testng/TestNGException
          at java.lang.Class.getDeclaredMethods0(Native Method)
          at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
          at java.lang.Class.privateGetMethodRecursive(Unknown Source)
          at java.lang.Class.getMethod0(Unknown Source)
          at java.lang.Class.getMethod(Unknown Source)
          at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
          at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
      Caused by: java.lang.ClassNotFoundException: org.testng.TestNGException
          at java.net.URLClassLoader.findClass(Unknown Source)
          at java.lang.ClassLoader.loadClass(Unknown Source)
          at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
          at java.lang.ClassLoader.loadClass(Unknown Source)
          ... 7 more
      

      对我来说,在项目的构建路径中添加 testng-6.11.jar 后问题得到了解决。请按照以下步骤操作:

      右击project -> Build path -> Configure build path -> Libraries tab -> Add external jars -> 选择testng-6.11.jar和apply

      【讨论】:

        【解决方案8】:
        • 您的任何文件在编译时都存在,但无法访问 在执行时
        • 您需要交叉检查编译时和运行时环境&
          类路径

        【讨论】:

          【解决方案9】:

          对于 Linux:

          尝试使用以下命令更改配置的 Java 版本:

          sudo update-alternatives --config java
          

          此命令将显示:

          There are 3 choices for the alternative java (providing /usr/bin/java).
          
            Selection    Path                                            Priority   Status
          ------------------------------------------------------------
          * 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      auto mode
            1            /usr/lib/jvm/java-10-openjdk-amd64/bin/java      1101      manual mode
            2            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
            3            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
          
          Press <enter> to keep the current choice[*], or type selection number: 3
          
          

          选择合适的版本并完成。

          【讨论】:

            【解决方案10】:

            在尝试使用 TestNG 运行 Java 程序时,我在 Windows 机器上也遇到了这个 JNI 错误。尽管我一直在更新 Eclipse 以及最新的 TestNG jar 和插件安装。 此后我了解了 jCommander.jar 文件,将此 jar 添加到我的项目构建路径(作为外部 JAR)并修复了错误。 可以从这里下载最新的 JCommander.jar - https://mvnrepository.com/artifact/com.beust/jcommander

            【讨论】:

              【解决方案11】:

              在卸载我的 java jdk 较新版本并升级到 java jdk 旧版本后,我遇到了这个问题。

              我已经通过在 eclipse 中重新创建我的 java 项目来解决它。

              【讨论】:

                【解决方案12】:

                以下解决方案解决了我的问题。谢谢

                为了解决这个问题,我们需要下载 jcommander1.7 jar 文件。下载jar文件访问下面的url并获取jcommander1.7 jar文件

                http://www.java2s.com/Code/Jar/j/Downloadjcommander17jar.htm

                jcommander1.7 jar文件实现流程-

                项目右键->属性->点击库->点击添加外部jars->导航到jcommander1.7 jar文件下载的位置。

                并运行您的脚本,现在您的脚本将成功运行。

                【讨论】:

                  【解决方案13】:

                  我也遇到了这个错误。请添加 jcommander1.7 jar 作为外部 jar 。 请按照以下链接 https://mvnrepository.com/artifact/com.beust/jcommander/1.7

                  添加这个外部 jar 有效。

                  【讨论】:

                    猜你喜欢
                    • 2020-01-13
                    • 2020-02-22
                    • 1970-01-01
                    • 2016-12-25
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多