类已由更新版本的Java环境编译

时间:2017-11-23 13:50:27

标签: java eclipse selenium firefox java-8

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

  

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

Java版本:8
IDE:Eclipse氧气
Firefox版本:46

11 个答案:

答案 0 :(得分:13)

这只是一个版本不匹配。您已使用Java版本9编译代码,并且当前的JRE是版本8.尝试将JRE升级到9。

答案 1 :(得分:11)

IDE:Eclipse Oxygen.3

要暂时解决问题,请执行以下操作:

Project menu> Properties> Java Compiler> Compiler compliance level> 1.8

永久修复可能涉及安装JDK 9。

FYI 1.8是Java 8的名称。

边栏

我最近在进入C#(一口新鲜空气)之后回到了Java,并将Eclipse Oxygen安装到一个之前从未安装过Java的干净系统上。这个默认一切全新安装的Eclipse Oxygen但不知何故或其他Eclipse无法获得自己的参数来匹配已安装的jdk。这是我创建的第二个项目,也是我第二次遇到这个问题。是时候回到C#了?

相关问题

has been compiled by a more recent version of the Java Runtime (class file version 53.0)

答案 2 :(得分:5)

53代表java-9,因此它意味着您使用javac-9编译了所有类,并尝试使用jre-8运行它。要么使用javac-8重新编译该类,要么使用jre-9

答案 3 :(得分:2)

之所以写这篇文章,是因为我发现其他答案很难理解。

基本上,您的JRE尚未更新和/或未将Eclipse配置为使用最新的JRE。

在Windows上,转到控制面板->程序-> Java->更新,然后继续更新Java

或者如果您没有Java,请访问Oracle网站并下载最新的JRE。

完成此操作后,进入eclipse,然后在项目视图下,右键单击您的项目,选择Java Build Path,双击JRE System Library,然后选择“ Workspace Default JRE 14.1”。

如果此处未显示Java的最新版本,则可能未安装。检查您的JRE(NOT JDK)版本,并确保它是最新版本。如果是这样,请尝试重新启动计算机,然后再试一次。

答案 4 :(得分:1)

您可以尝试这种方式

javac --release 8 yourClass.java

答案 5 :(得分:1)

您的 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:您的源代码需要编译的版本。
目标:您要支持的最旧 JRE 版本。

答案 6 :(得分:0)

转到“项目”部分,单击“属性”,然后单击“ Java编译器”>检查编译器的遵从性级别为1.8,否则底部应该没有黄色警告

答案 7 :(得分:0)

刷新gradle依赖项对我有用:右键单击项目-> Gradle->刷新Gradle项目。

答案 8 :(得分:0)

在Intellij中构建Jar之后,控制台出现了类似的问题。使用Java配置更新到新版本(Windows->配置Java->更新->立即更新)无效,并停留在1.8版(Java 8)。

要在本地切换到最新版本,我必须从https://www.oracle.com/uk/java/technologies/javase-jdk15-downloads.html安装Java 15 JDK,并将其添加到Java运行时环境设置中。

Java Runtime Environment Settings

答案 9 :(得分:0)

您应该检查您的项目方面。

项目属性 > 项目构面

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

答案 10 :(得分:-1)

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

>

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

感谢和问候, Akshay kenjale。