已由较新版本的 Java 运行时编译(类文件版本 57.0)

2022-08-31 09:52:00

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

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

我设置了:

PATH 作为 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)

答案 1

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

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

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

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

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

解决方案是将Java 13目录放在上面或代替Java 8。在Windows上,您可能已经自动添加到,现在指向Java 8:binPATHC:\Program Files (x86)\Common Files\Oracle\Java\javapathPATH

javapath

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


答案 2

这是 IntelliJ IDEA 中的一个设置(语言级别设置为 1.8):$JAVA_HOME

File > Settings > Build, Execution, Deployment > Gradle > Gradle JVM

选择例如。 (或任何其他兼容版本)。Project SDK (corretto-1.8)

然后删除该目录并重新启动 IDE。build


推荐