Klasa została skompilowana w nowszej wersji środowiska Java

87

Podczas uruchamiania skryptu selenu w konsoli Eclipse pojawia się następujący komunikat o błędzie:

Klasa została skompilowana przez nowszą wersję środowiska Java (wersja pliku klasy 53.0), ta wersja środowiska wykonawczego Java rozpoznaje tylko wersje plików klas do 52.0.


  • Wersja Java: 8
  • IDE: Eclipse Oxygen
  • Wersja przeglądarki Firefox: 46
user5218071
źródło
6
wersja pliku klasy 53 = Java 9. JVM Java 8 nie może wykonać kodu Java 9.
howlger

Odpowiedzi:

111

To tylko niezgodność wersji. Kod został skompilowany przy użyciu języka Java w wersji 9, a bieżące środowisko JRE to wersja 8. Spróbuj zaktualizować środowisko JRE do wersji 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
Nithin
źródło
24
udzielanie rad w zakresie logicznego wyboru może w ogóle nie być dobrym rozwiązaniem ... a co jeśli projekt jest uruchamiany z jre-8 w pierwszej kolejności i ktoś przypadkowo skompilował jakiś moduł na 9?
Eugene
Uważam, że aktualizacja nadal nie spowoduje żadnych problemów, ponieważ nie będzie żadnych problemów ze zgodnością wsteczną. I było to logiczne, ponieważ uważam, że kompilator został zaktualizowany do najnowszej wersji.
Nithin
10
myślisz w kategoriach małego projektu w piaskownicy; w przypadku projektów korporacyjnych - to nigdy nie jest łatwa zmiana. Na przykład w 8 naprawiono niektóre błędy generyczne, na których polegałeś ich skutki uboczne w wersji 7; lub HashMapkolejność zmieniła się z 7 na 8 ... itd. Zmierzyłem się z tym. Mówiąc najprościej - przejście na 9 to dobra opcja, ale nigdy prosta i szybka
Eugene
jeśli określasz poziomy projektów przedsiębiorstwa, tak, masz rację i zdecydowanie się z tym zgadzam. Podwyższenie / obniżenie poziomu nigdy nie jest najbardziej realną opcją w takich scenariuszach.
Nithin
@nithinpankaj Zasadniczo za każdym razem, gdy próbowałem użyć Javy 9, pojawił się jakiś nowy błąd. Bez powodu do aktualizacji przestałem próbować i mam raczej kiepską opinię o Javie 9.
Erhannis
37

IDE: Eclipse Oxygen 3

Aby tymczasowo rozwiązać problem, wykonaj następujące czynności:

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

Trwała poprawka prawdopodobnie obejmuje instalację JDK 9.

Java 8 nazywa się FYI 1.8.

Pasek boczny

Niedawno wróciłem do Javy po wyprawie do C # (powiew świeżego powietrza) i zainstalowałem Eclipse Oxygen w czystym systemie, na którym nigdy wcześniej nie była zainstalowana Java. Ten domyślny wszystko z zupełnie nowym zainstalować Eclipse Oxygen jeszcze w taki czy inny Eclipse nie można dostać własne parametry, aby dopasować JDK, który jest zainstalowany. To drugi projekt, który stworzyłem i drugi raz wpadłem w ten ból głowy. Czas wrócić do C #?

Powiązane pytanie

został skompilowany przez nowszą wersję środowiska wykonawczego Java (wersja pliku klasy 53.0)

Eric D.
źródło
ciekawy. Czy to oznacza, że ​​kod bajtowy NIE jest zgodny z przyszłymi wersjami?
toto '30
10

Możesz spróbować w ten sposób

javac --release 8 yourClass.java
Krishna Santosh Nidri
źródło
6

53oznacza java-9, więc oznacza, że ​​niezależnie od klasy, z którą zostałeś skompilowany javac-9i próbujesz ją uruchomić jre-8. Przekompiluj tę klasę ponownie javac-8lub użyj jre-9

Eugene
źródło
1

Piszę to, ponieważ inne odpowiedzi były dla mnie trudne do zrozumienia.

Zasadniczo środowisko JRE nie jest aktualizowane i / lub Eclipse nie jest skonfigurowane do korzystania z najnowszego środowiska JRE.

W systemie Windows przejdź do Panel sterowania -> Programy -> Java -> aktualizuj i przejdź do aktualizacji java

lub jeśli nie masz oprogramowania Java, przejdź do witryny internetowej firmy Oracle i pobierz najnowsze środowisko JRE.

Gdy to zrobisz, przejdź do Eclipse i w widoku projektu kliknij prawym przyciskiem myszy projekt, wybierz Java Build Path, dwukrotnie kliknij JRE System Library, a następnie Select Workspace Default JRE 14.1.

Jeśli najnowsza wersja Java nie pojawia się tutaj, prawdopodobnie nie jest zainstalowana. Sprawdź wersję JRE (NIE JDK) i upewnij się, że jest aktualna. Jeśli tak, spróbuj ponownie uruchomić komputer, a następnie spróbuj ponownie.

Jacob Waters
źródło
0

Przejdź do sekcji Projekt, kliknij właściwości> następnie do kompilatora Java> sprawdź, czy poziom zgodności kompilatora wynosi 1,8 lub na dole nie powinno być żadnego żółtego ostrzeżenia

ARVIND1994
źródło
0

U mnie działa odświeżanie zależności gradle: Kliknij prawym przyciskiem myszy projekt -> Gradle -> Odśwież projekt Gradle.

Carlos Casallas
źródło
0

Miałem podobny problem z konsolą po zbudowaniu Jar w Intellij. Użycie konfiguracji Java do aktualizacji do nowszej wersji (Windows -> Konfiguruj Javę -> Aktualizuj -> Aktualizuj teraz) nie działało i utknęło w wersji 1.8 (Java 8).

Aby przełączyć się na nowszą wersję lokalnie, musiałem zainstalować Java 15 JDK z https://www.oracle.com/uk/java/technologies/javase-jdk15-downloads.html i dodać to do ustawień środowiska wykonawczego Java.

Ustawienia środowiska wykonawczego Java

ILally
źródło
-1

Aby uzyskać tymczasowe rozwiązanie, po prostu kliknij prawym przyciskiem myszy Projekt => Właściwości => Kompilator Java => tam wybierz poziom zgodności kompilatora 1.8 =>. Kompatybilność klas 1.8 => zgodność ze źródłami 1.8 .

Wtedy Twój kod zacznie działać w wersji 1.8 .

Dzięki i pozdrawiam, Akshay kenjale.

akshay kenjale
źródło