Class has been compiled by a more recent version of the Java Environment

has been compiled by a more recent version of the java runtime intellij
jre 13
jre 11
has been compiled by a more recent version eclipse
org/openjfx/gradle/javafxplugin has been compiled by a more recent version of the java runtime
java.lang.unsupportedclassversionerror intellij
exception in thread main'' java lang unsupportedclassversionerror
java version

While running selenium script, I am getting the following error message in Eclipse console:

Class has been compiled by a more recent version of the Java Environment (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0.


  • Java Version: 8
  • IDE: Eclipse Oxygen
  • Firefox Version: 46

This is just a version mismatch. You have compiled your code using java version 9 and your current JRE is version 8. Try upgrading your JRE to 9.

49 = Java 5
50 = Java 6
51 = Java 7
52 = Java 8
53 = Java 9
54 = Java 10
55 = Java 11
56 = Java 12
57 = Java 13
58 = Java 14

How to fix UnsupportedClassVersionError: Class has been compiled , Class has been compiled by a more recent version of the Java Environment. Class has been compiled by a more recent version of the Java Environment (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0. 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. PATH as C:\Program Files\Java\jdk-13 JAVA_HOME as: C:\Program Files\Java\jdk-13 JRE_HOME as: C:\Program Files\Java\jre1.8.0_221.

IDE: Eclipse Oxygen.3

To temporarily correct the problem do the following:

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

A permanent fix likely involves installing JDK 9.

FYI 1.8 is what Java 8 is called.

Side bar

I recently returned to Java after a foray into C# (a breath of fresh air) and installed Eclipse Oxygen onto a clean system that had never had Java installed on it before. This default everything with a brand new install of Eclipse Oxygen yet somehow or other Eclipse can't get its own parameters to match the jdk that's installed. This is the second project I created and the second time I ran into this headache. Time to go back to C#?

Related Question

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

Class has been compiled by a more recent version of the Java , Class has been compiled by a more recent version of the Java Environment. Class has been compiled by a more recent version of the Java Environment (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0. UnsupportedClassVersionError: has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version (..)up to 52.0 18 Has been compiled by a more recent version of the Java Runtime (class file version 57.0)

53 stands for java-9, so it means that whatever class you have has been compiled with javac-9 and you try to run it with jre-8. Either re-compile that class with javac-8 or use the jre-9

Java JDK, version of compiler is not compatible with Java runtime , bashrc file. java -version shows: openjdk version "11.0.2" 2019-01-15 LTS OpenJDK Runtime Environment. Zulu11.29  Class has been compiled by a more recent version of the Java Environment. java -version shows: openjdk version "11.0.2" 2019-01-15 LTS OpenJDK Runtime Environment.

You can try this way

javac --release 8 yourClass.java

has been compiled by a more recent version of the Java Runtime, Hello has been compiled by a more recent version of the Java 57.0), this version of the Java Runtime only recognizes class file versions up to 52.0 the JRE is too old (in particular, older than the JDK you used to compile). How to fix UnsupportedClassVersionError: Class has been compiled by a more recent version of the Java Runtime Last Updated on May 11th, 2019 by App Shah 5 comments Today after installing Java 12 on my laptop, I started seeing some issue about compiler version mismatch.

Go to Project section, click on properties > then to Java compiler > check compiler compliance level is 1.8 , or there should be no yellow warning at bottom

java: Class has been compiled by a more recent version of the Java , UnsupportedClassVersionError: javafx/beans/value/ObservableValue has been compiled by a more recent version of the Java Runtime (class  Exception in thread “main” java.lang.UnsupportedClassVersionError: Main has been compiled by a more recent version of the Java Runtime (class file version 56.0), this version of the Java Runtime only recognizes class file versions up to 52.0″

2681874, 53 stands for java-9, so it means that whatever class you have has been compiled with javac-9 and you try to run it with jre-8 . Either re-compile that class with  has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 This error is telling us that our class was compiled at a higher version of Java than the version with which we tried to run it.

Has been compiled by a more recent version of the Java Runtime , java.lang.UnsupportedClassVersionError: <path> has been compiled by a more recent version of the Java Runtime (class file version 51.0), this version of the  Solved Different Java Main has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only

Has been compiled by a more recent version of the Java Runtime (class file version 57.0). I get this You need to double check the PATH environment setting. echo Warning: JAVA_HOME environment variable is not set. has been compiled by a more recent version of th e Java Runtime (class file version 55.0), this version

Comments
  • class file version 53 = Java 9. Your Java 8 JVM cannot execute Java 9 code.
  • giving advice on the logical choice might not be a good solution at all... what if the project is run with jre-8 in the first place and someone accidentally compiled some module against 9?
  • I believe the upgrade still won't cause any troubles since there won't be any backward compatibility issues. And it was logical since i believe the compiler has got upgraded to the latest version.
  • you're thinking in terms of a small, sandbox project; for enterprise projects - this is never a easy shift. For example some bugs were fixed in 8 for generics that you were relying on side-effects of them in 7; or HashMap order has changed from 7 to 8... etc. I have faced this. Simply saying - move to 9 is a good option, but never a simple and fast one
  • if you're stating in terms of enterprise project levels, yes you are correct and I strongly agree with that point. Upgrading/downgrading is never a most viable option in such scenarios.
  • @nithinpankaj Essentially every time I've tried to use Java 9, some new error has been thrown. With no reason to upgrade, I've stopped trying, and have a rather poor opinion of Java 9.
  • interesting. So does it mean that bytecode is NOT forward compatible?