Die Klasse wurde von einer neueren Version der Java-Umgebung kompiliert

87

Während der Ausführung des Selenium-Skripts wird in der Eclipse-Konsole die folgende Fehlermeldung angezeigt:

Die Klasse wurde von einer neueren Version der Java-Umgebung (Klassendateiversion 53.0) kompiliert. Diese Version der Java Runtime erkennt nur Klassendateiversionen bis 52.0.


  • Java-Version: 8
  • IDE: Eclipse Oxygen
  • Firefox-Version: 46
user5218071
quelle
6
Klassendateiversion 53 = Java 9. Ihre Java 8-JVM kann keinen Java 9-Code ausführen.
Heulen

Antworten:

111

Dies ist nur eine Versionsinkongruenz. Sie haben Ihren Code mit Java Version 9 kompiliert und Ihre aktuelle JRE ist Version 8. Versuchen Sie, Ihre JRE auf 9 zu aktualisieren.

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
Nithin
quelle
24
Ratschläge zur logischen Wahl zu geben, ist möglicherweise überhaupt keine gute Lösung. Was ist, wenn das Projekt überhaupt mit jre-8 ausgeführt wird und jemand versehentlich ein Modul gegen 9 kompiliert hat?
Eugene
Ich glaube, das Upgrade wird immer noch keine Probleme verursachen, da es keine Abwärtskompatibilitätsprobleme gibt. Und es war logisch, da ich glaube, dass der Compiler auf die neueste Version aktualisiert wurde.
Nithin
9
Sie denken an ein kleines Sandbox-Projekt. für Unternehmensprojekte - dies ist nie eine einfache Verschiebung. Zum Beispiel wurden einige Fehler in 8 für Generika behoben, auf deren Nebenwirkungen Sie sich in 7 verlassen haben. oder die HashMapReihenfolge hat sich von 7 auf 8 geändert ... usw. Ich habe mich dem gestellt. Einfach zu sagen - auf 9 zu wechseln ist eine gute Option, aber niemals eine einfache und schnelle
Eugene
Wenn Sie in Bezug auf Unternehmensprojektebenen angeben, haben Sie Recht, und ich stimme diesem Punkt voll und ganz zu. Ein Upgrade / Downgrade ist in solchen Szenarien niemals eine praktikable Option.
Nithin
@nithinpankaj Im Wesentlichen wurde jedes Mal, wenn ich versucht habe, Java 9 zu verwenden, ein neuer Fehler ausgegeben. Ohne Grund für ein Upgrade habe ich aufgehört zu versuchen und habe eine ziemlich schlechte Meinung zu Java 9.
Erhannis
37

IDE: Eclipse Oxygen.3

Gehen Sie wie folgt vor, um das Problem vorübergehend zu beheben:

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

Ein dauerhafter Fix beinhaltet wahrscheinlich die Installation von JDK 9.

Zu Ihrer Information 1.8 heißt Java 8.

Seitenleiste

Ich bin kürzlich nach einem Streifzug durch C # (ein Hauch frischer Luft) nach Java zurückgekehrt und habe Eclipse Oxygen auf einem sauberen System installiert, auf dem noch nie Java installiert war. Diese Standardeinstellung ist alles mit einer brandneuen Installation von Eclipse Oxygen, aber irgendwie kann Eclipse keine eigenen Parameter erhalten, die mit dem installierten JDK übereinstimmen. Dies ist das zweite Projekt, das ich erstellt habe, und das zweite Mal, dass ich auf diese Kopfschmerzen gestoßen bin. Zeit, zu C # zurückzukehren?

Verwandte Frage

wurde von einer neueren Version der Java Runtime (Klassendateiversion 53.0) kompiliert

Eric D.
quelle
interessant. Bedeutet das also, dass der Bytecode NICHT vorwärtskompatibel ist?
Bis
10

Sie können diesen Weg versuchen

javac --release 8 yourClass.java
Krishna Santosh Nidri
quelle
6

53steht für Java-9, was bedeutet, dass jede Klasse, mit der Sie kompiliert wurden, javac-9Sie versuchen, sie auszuführen jre-8. Kompilieren Sie diese Klasse entweder neu mit javac-8oder verwenden Sie jre-9

Eugene
quelle
1

Ich schreibe das, weil ich die anderen Antworten schwer zu verstehen fand.

Im Wesentlichen wird Ihre JRE nicht aktualisiert und / oder Eclipse ist nicht für die Verwendung der neuesten JRE konfiguriert.

Gehen Sie unter Windows zu Systemsteuerung -> Programme -> Java -> Aktualisieren und fahren Sie mit dem Aktualisieren von Java fort

Wenn Sie kein Java haben, besuchen Sie die Oracle-Website und laden Sie die neueste JRE herunter.

Sobald dies erledigt ist, gehen Sie in Eclipse und klicken Sie in der Projektansicht mit der rechten Maustaste auf Ihr Projekt, wählen Sie Java Build Path, doppelklicken Sie auf JRE System Library und wählen Sie Workspace Default JRE 14.1.

Wenn eine aktuelle Version von Java hier nicht angezeigt wird, ist sie wahrscheinlich nicht installiert. Überprüfen Sie Ihre JRE-Version (NICHT JDK) und stellen Sie sicher, dass sie aktuell ist. Wenn dies der Fall ist, starten Sie den Computer neu und versuchen Sie es erneut.

Jacob Waters
quelle
0

Gehen Sie zum Abschnitt Projekt, klicken Sie auf Eigenschaften> und dann zum Java-Compiler. Überprüfen Sie, ob die Compiler-Konformitätsstufe 1,8 beträgt. Andernfalls sollte unten keine gelbe Warnung angezeigt werden

ARVIND1994
quelle
0

Das Aktualisieren von Gradle-Abhängigkeiten funktioniert für mich: Klicken Sie mit der rechten Maustaste auf das Projekt -> Gradle -> Gradle-Projekt aktualisieren.

Carlos Casallas
quelle
0

Ich hatte ein ähnliches Problem von der Konsole, nachdem ich in Intellij ein Glas gebaut hatte. Die Verwendung der Java-Konfiguration zum Aktualisieren auf eine neuere Version (Windows -> Java konfigurieren -> Aktualisieren -> Jetzt aktualisieren) funktionierte nicht und blieb bei Version 1.8 (Java 8) hängen.

Um lokal zu einer neueren Version zu wechseln, musste ich das Java 15 JDK von https://www.oracle.com/uk/java/technologies/javase-jdk15-downloads.html installieren und zu meinen Java-Laufzeitumgebungseinstellungen hinzufügen.

Java-Laufzeitumgebungseinstellungen

ILally
quelle
-1

Für eine temporäre Lösung klicken Sie einfach mit der rechten Maustaste auf Projekt => Eigenschaften => Java-Compiler =>. Wählen Sie dort die Compiler-Konformitätsstufe 1.8 => .Klassenkompatibilität 1.8 => Quellkompatibilität 1.8 .

Dann wird Ihr Code ab Version 1.8 ausgeführt .

Danke und Grüße, Akshay Kenjale.

Akshay Kenjale
quelle