发生了JNI错误。请检查您的安装

时间:2015-05-07 21:58:19

标签: eclipse-plugin testng

我尝试使用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

13 个答案:

答案 0 :(得分:7)

是的,有一个issue testNG在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路径,你的测试套件将在没有任何错误的情况下使用命令提示符运行。

答案 1 :(得分:3)

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

将jcommdar.jar添加到classpath然后运行: java -cp“C:\ TestNG \ testng.jar; C:\ TestNG \ jcommander.jar”org.testng.TestNG testng.xml

答案 2 :(得分:1)

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

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

实现jcommander1.7 jar文件的过程 -

右键单击项目 - >属性 - >单击liabraries->单击Add external jars->导航到下载jcommander1.7 jar文件的位置。

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

答案 3 :(得分:0)

select max(case when value like '%(value2)' then substring_index(value, '(', 1) + 0 end) / sqrt(max(case when '%(value1)' then substring_index(value, '(', 1) + 0 end) * max(case when '%(value2)' then substring_index(value, '(', 1) + 0 end) ) ) from t; 添加到jcommdar.jar,然后运行:

classpath

对我来说真的很有帮助。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

当您的JDK版本和JRE版本不兼容或者未安装所需的JRE版本时,通常会发生这种情况。

要纠正错误,请使用 Window-> Preferences-> 编译器->编译器合规性级别,然后将JRE版本更改为现有的JRE版本。

答案 6 :(得分:0)

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

enter image description here

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和{ {1}}。

答案 7 :(得分:0)

贝洛解决方案解决了我的问题。谢谢

要解决此问题,我们需要下载jcommander1.7 jar文件。下载URL下方的jar文件并获取jcommander1.7 jar文件

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

实现jcommander1.7 jar文件的过程-

右键单击项目->属性->在库中单击->单击“添加外部jars”->导航至jcommander1.7 jar文件的下载位置。

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

答案 8 :(得分:0)

  • 您的任何文件在编译时都存在,但无法访问 在执行时
  • 您需要同时检查编译时和运行时环境&
    类路径

答案 9 :(得分:0)

对于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 :(得分:0)

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

答案 11 :(得分:0)

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

添加此外部 jar 有效。

答案 12 :(得分:-1)

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

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