在运行脚本时,我在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工件

其他回答

对我来说,解决方案是按照安德烈·库兹涅佐夫在https://youtrack.jetbrains.com/issue/IDEA-251407/Failed-to-run-Android-project-in-the-Idea-20203-EAP-OutputBuildAction-has-been-compiled-by-a-more-recent-version-of-the-Java上所说的去做,总结如下:

根本原因:IDEA源码现在是基于Java 11编译的。已知的解决方法是将Java 11配置为Gradle JVM。”(Andrei“库兹涅佐夫”)

您应该检查您的Project Facets。

项目属性>项目facet

将java版本更改为您正在使用的相同版本。这对我很有用!

IDE: Eclipse Oxygen.3

要临时纠正这个问题,请执行以下操作:

1.8 .项目菜单>属性> Java编译器>编译器遵从级别>

一个永久性的解决方案可能涉及安装JDK 9。

供您参考,Java 8被称为1.8。

侧边栏

最近,我在尝试了c#之后(呼吸了一股新鲜空气)又回到了Java,并将Eclipse Oxygen安装到一个以前从未安装过Java的干净系统上。这种默认的一切都是全新安装的Eclipse Oxygen,但不知为何Eclipse无法获得自己的参数来匹配已安装的jdk。这是我创建的第二个项目,也是我第二次遇到这个头疼的问题。是时候回到c#了?

相关的问题

已被最新版本的Java运行时(类文件版本53.0)编译。

我的错误类似:“UnsupportedClassVersionError:类已被最新版本的Java运行时编译。”

解决方案:我尝试将我的JAVA版本从15更新到17,它在我的情况下工作,而不是更新编译器中的所有JRE或做其他事情。

只需下载更新版本的JAVA,并将SYSTEM Variable中的路径更改为17

返回到项目并应用以下步骤:

选择你的项目——>点击属性(最后)---->选择JAVA构建路径——>改变JRE从15到17 ---->应用——>应用并关闭

53代表java-9,所以这意味着你拥有的任何类都是用javac-9编译的,你可以尝试用jre-8运行它。要么使用javac-8重新编译该类,要么使用jre-9