在运行脚本时,我在Eclipse控制台中得到以下错误消息:

类已经由最新版本的Java环境(类文件版本53.0)编译,该版本的Java运行时只识别52.0以下的类文件版本。


Java版本:8 IDE: Eclipse Oxygen Firefox版本:46


当前回答

我在Windows 10上复制了类似的问题,格式如下:

Error: LinkageError occurred while loading main class ...
java.lang.UnsupportedClassVersionError: com/.../ServiceApplication 
has been compiled by a more recent version of the Java Runtime (class file version 62.0), 
this version of the Java Runtime only recognizes class file versions up to 61.0

将项目从Java 17升级到Java 18。

我有关于Java 18的项目设置:

命令行:

Java版本“18.0.1.1”2022-04-22 Java(TM) SE运行时环境(build 18.0.1.1+2-6) Java HotSpot(TM) 64位服务器虚拟机(build 18.0.1.1+2-6,混合模式,共享)

项目结构->项目设置->项目:

项目结构->项目设置->模块:

项目结构->平台设置-> sdk:

这个问题的原因是:

我忘记为运行/调试配置指定正确的版本->构建并运行到Java 18而不是Java 17:

因为它是用较新的Java版本编译的,但运行在较旧的版本上。


如果是与maven相关的问题,您可以通过指定Java编译器的-source和-target来修改POM。


其他有用的链接:

在Maven中设置Java版本 使用特定Java版本的Jar工件

其他回答

看起来每个人都在使用windows进行开发,但如果你使用Linux,降低你的Java版本。如果你想安装JDK 8, @Nithin提供的版本表应该会让你知道你想安装哪个版本。

对于临时解决方案,只需右键单击项目=>属性=> Java编译器=>在那里请选择编译器兼容级别1.8 => .class兼容性1.8 =>源代码兼容性1.8。

然后您的代码将开始在版本1.8上执行。

IDE: Eclipse 2021-09

这是因为您使用java版本9编译了代码并安装了java8。您不必更新来解决此问题。

右键单击项目>属性> Java Compiler >取消勾选-启用 项目特定设置>配置工作空间设置> tick-Use 默认合规设置>应用并关闭。


现在您的代码应该被正确执行了。

上周,我把Mac上的Android Studio从2021.2.1升级到了2021.3.1。然后我们的项目因为类似的原因而失败了:

原因:com/android/tools/idea/gradle/run/OutputBuildAction已被 由最新版本的Java运行时(类文件 version 55.0),这个版本的Java运行时只识别类 文件版本高达53.0

我在Jetbrains YouTrack论坛上发现了一些讨论:在Idea 2020.3 EAP中运行Android项目失败(OutputBuildAction已由Java运行时的最新版本(类文件版本55.0)编译)。建议的解决方法是将已定义的Gradle JDK版本更新到JDK11,但许多Android项目不支持Gradle JDK11,我的项目也是如此。

另一个解决方案是将Android Studio从2021.3.1降级到2021.2.1,这对我来说很有效。希望能有所帮助。

在我的情况下,我使用IntellJ Idea和设置JDK11作为我的SDK和JDK17在gradle设置。

只要把我的SDK更新为JDK17,问题就解决了

检查“项目设置”(CMD+;) -> SDK中的JDK

with

“头参考资料”中的“gradle JVM”(CMD+) ->内置工具-> gradle JVM