已由更新版本的 Java Runtime 编译(类文件版本 57.0) [英] Has been compiled by a more recent version of the Java Runtime (class file version 57.0)

查看:42
本文介绍了已由更新版本的 Java Runtime 编译(类文件版本 57.0)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在使用 IntelliJ 时遇到了这个问题.但是我的系统上新安装的所有东西都是最新版本.

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

我已经设置:

PATH 为 C:Program FilesJavajdk-13JAVA_HOME 为:C:Program FilesJavajdk-13JRE_HOME 为:C:Program FilesJavajre1.8.0_221

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

完整的错误消息:

H:87-JAVAHelloWorldsrc>java com.codewithmosh.Main错误:发生 JNI 错误,请检查您的安装并重试线程main"中的异常 java.lang.UnsupportedClassVersionError: com/codewithmosh/Main 已由更新版本的 Java 运行时(类文件版本 57.0)编译,此版本的 Java 运行时仅识别高达 52.0 的类文件版本在 java.lang.ClassLoader.defineClass1(Native Method)在 java.lang.ClassLoader.defineClass(Unknown Source)在 java.security.SecureClassLoader.defineClass(Unknown Source)在 java.net.URLClassLoader.defineClass(Unknown Source)在 java.net.URLClassLoader.access$100(来源不明)在 java.net.URLClassLoader$1.run(Unknown Source)在 java.net.URLClassLoader$1.run(Unknown Source)在 java.security.AccessController.doPrivileged(Native Method)在 java.net.URLClassLoader.findClass(Unknown Source)在 java.lang.ClassLoader.loadClass(来源不明)在 sun.misc.Launcher$AppClassLoader.loadClass(来源不明)在 java.lang.ClassLoader.loadClass(来源不明)在 sun.launcher.LauncherHelper.checkAndLoadMain(来源不明)

解决方案

您需要仔细检查 PATH 环境设置.C:Program FilesJavajdk-13 您当前的位置不正确.请确保您在 PATH 列表顶部有最新 JDK 版本的 bin 子目录.

java.exe 可执行文件位于 C:Program FilesJavajdk-13in 目录中,所以这就是您需要在 中的内容路径.

使用

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

I get this problem Using IntelliJ. But I have the newest version of everything newly installed on my system.

... 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

I've set:

PATH as C:Program FilesJavajdk-13 JAVA_HOME as: C:Program FilesJavajdk-13 JRE_HOME as: C:Program FilesJavajre1.8.0_221

I've set the path, tried to find a change in the Project structure

COMPLETE ERROR MESSAGE:

H:87-JAVAHelloWorldsrc>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)

解决方案

You need to double check the PATH environment setting. C:Program FilesJavajdk-13 you currently have there is not correct. Please make sure you have the bin subdirectory for the latest JDK version at the top of the PATH list.

java.exe executable is in C:Program FilesJavajdk-13in directory, so that is what you need to have in PATH.

Use this tool to quickly verify or edit the environment variables on Windows. It allows to reorder PATH entries. It will also highlight invalid paths in red.

If you want your code to run on lower JDK versions as well, change the target bytecode version in the IDE. See this answer for the relevant screenshots.

See also this answer for the Java class file versions. What happens is that you build the code with Java 13 and 13 language level bytecode (target) and try to run it with Java 8 which is the first (default) Java version according to the PATH variable configuration.

The solution is to have Java 13 bin directory in PATH above or instead of Java 8. On Windows you may have C:Program Files (x86)Common FilesOracleJavajavapath added to PATH automatically which points to Java 8 now:

If it's the case, remove the highlighted part from PATH and then logout/login or reboot for the changes to have effect. You need to Restart as administrator first to be able to edit the System variables (see the button on the top right of the system variables column).

这篇关于已由更新版本的 Java Runtime 编译(类文件版本 57.0)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆