java - 尝试通过cmd运行java代码时出现JNI错误

标签 java cmd

编译任何 Java 代码后,当我尝试从 cmd 运行它时,我得到:

  Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        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)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

我有:

jdk-11.0.1
jre1.8.0_192

我还有jdk/bin在我的PATH环境适宜。当我使用 IDE 并且我的 PC 识别 java/c -version 时,代码运行良好命令。

最佳答案

class file version 55.0 表示此 .class 文件 is compiled with JDK 11 。该文件允许在 Java 11 或更高版本上运行,但您的 java 正在使用该 jre1.8.0_192

您应该更改 JAVA_PATHPATH 环境变量,以使命令 java 指向 Java 11 版本的 java,例如位于 jdk-11.0.1 中的那个,或者在 jdk-11.0.1 中使用该 java.exe > 运行这个 .class 文件。

关于java - 尝试通过cmd运行java代码时出现JNI错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53504963/

相关文章:

java - 计算使用java中的Random()方法生成的数字的平均值

java - session 中登录网站的不同用户的 HashMap

java - 我是否在 Java 中正确实现了这个基本的低通滤波器(Phrogz 的滤波器!)?

java - 当 B 实现 A 时,将 ConcurrentHashMap<String, B> 转换为 ConcurrentHashMap<String, A>

c++ - 在 Cmd 窗口之间切换焦点,强制焦点(保持程序运行的 1 个瞬间)

java - 多维数组操作 - Java

xml - 如何使用Office部署工具在服务器上安装Office365?

cmd - 如何缩短 DOS 提示符的路径?

java - 如何在执行jar文件时打开cmd(qt QProcess)

linux - 我想通过 perl 从 linux 机器运行窗口 cmd 命令