首页 > 解决方案 > 已由更新版本的 Java Runtime(类文件版本 57.0)编译

问题描述

我使用 IntelliJ 遇到了这个问题。但是我的系统上新安装了最新版本的所有内容。

... 已由 Java 运行时的更新版本(类文件版本 57.0)编译,此版本的 Java 运行时仅识别高达 52.0 的类文件版本

我已经设置:

路径为 C:\Program Files\Java\jdk-13 JAVA_HOME 为:C:\Program Files\Java\jdk-13 JRE_HOME 为:C:\Program Files\Java\jre1.8.0_221

我已经设置了路径,试图找到项目结构的变化

完整的错误信息:

H:\087-JAVA\HelloWorld\src>java com.codewithmosh.Main
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/codewithmosh/Main has been compiled by a more recent version of the Java Runtime (class file version 57.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)

标签: javaintellij-ideasdk

解决方案


您需要仔细检查PATH环境设置。C:\Program Files\Java\jdk-13你目前有不正确的。请确保您在列表bin顶部拥有最新 JDK 版本的子目录。PATH

java.exe可执行文件在C:\Program Files\Java\jdk-13\bin目录中,所以这就是您需要在PATH.

使用此工具可以快速验证或编辑 Windows 上的环境变量。它允许重新排序PATH条目。它还将以红色突出显示无效路径。

如果您还希望代码在较低的 JDK 版本上运行,请在 IDE 中更改目标字节码版本。有关相关屏幕截图,请参阅此答案

另请参阅此答案以了解 Java 类文件版本。发生的情况是,您使用 Java 13 和 13 语言级字节码(目标)构建代码,并尝试使用 Java 8 运行它,这是根据PATH变量配置的第一个(默认)Java 版本。

解决方案是在上面使用 Java 13bin目录PATH或代替 Java 8。在 Windows 上,您可能已经自动C:\Program Files (x86)\Common Files\Oracle\Java\javapath添加了PATH指向 Java 8 的目录:

java路径

如果是这种情况,请从中删除突出显示的部分PATH,然后注销/登录或重新启动以使更改生效。您需要首先以管理员身份重新启动才能编辑系统变量(请参见系统变量列右上角的按钮)。


推荐阅读