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

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


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


当前回答

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

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

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

with

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

其他回答

JDK版本:Java 8 您的JRE版本:Java 9

这里的JRE版本与JDK版本不同,就是这样。在这里,您可以使用JDK 1.8版本编译所有java类。如果你只想编译一个java类,只需将*.java更改为<yourclassname>.java

javac -source 1.8 -target 1.8  *.java

source:编译源代码所需的版本。 target:您希望支持的旧JRE版本。

对我来说,解决方案是按照安德烈·库兹涅佐夫在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“库兹涅佐夫”)

IDE: Eclipse 2021-09

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

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


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

你可以试试这种方法

javac --release 8 yourClass.java

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