java - 发生 JNI 错误,请检查您的安装并重试。(尽管 Java -version 和 javac -version 也相同)

标签 java executable-jar

java.lang.NoClassDefFoundError: org/json/JSONException
        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.json.JSONException
        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
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main"

每当我尝试运行 .jar 文件时,都会出现上述错误。java -version 和 javac -version 是相同的。我还在环境变量中设置了类路径。但我仍然收到上述错误。任何人都可以提供一个解决这个问题?

最佳答案

问题: java.lang.ClassNotFoundException 或 java.lang.NoClassDefFoundError 表示 JVM 在类路径上找不到消息中提到的类:org/json/JSONException。

解决方案: 或者,您需要将整个 jar 添加到您的类路径中 (有关如何执行此操作,请访问:Official Oracle's documentation on adding classes to classpath5 ways to add multiple jars to classpath

或者,如果您使用像 Maven 这样的构建工具,您可以为缺少的类添加依赖项:

<!-- https://mvnrepository.com/artifact/org.json/json -->
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20200518</version>
</dependency>

您还可以在链接中找到整个 jar :Maven repo link for json dependency .

关于java - 发生 JNI 错误,请检查您的安装并重试。(尽管 Java -version 和 javac -version 也相同),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62084124/

相关文章:

java - Optaplanner - 运行可执行 jar 时出错,但在 eclipse 中运行正常

java - 计算 Java 类校验和的最佳方法是什么?

java - Mockito:如何模拟 javax.inject.Provider 创建的原型(prototype) bean?

java - 外部文件中的嵌套/内部类

grails - Grails 3.1.5不生成jar文件

java - 从 jar 主类运行第二个代码(jar)

shell - 在服务器上作为后台进程运行 java jar 文件

java - eclipse 生成可执行 jar 文件背后的魔力

java - Spring Web - 解码 URL 参数

java - Netbeans 8.1是否可以指定以分解模式将ear部署到wildfly