La classe è stata compilata da una versione più recente dell'ambiente Java


87

Durante l'esecuzione dello script selenio, ricevo il seguente messaggio di errore nella console Eclipse:

La classe è stata compilata da una versione più recente di Java Environment (file di classe versione 53.0), questa versione di Java Runtime riconosce solo le versioni di file di classe fino a 52.0.


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

6
file di classe versione 53 = Java 9. La JVM Java 8 non può eseguire codice Java 9.
howlger

Risposte:


110

Questa è solo una mancata corrispondenza di versione. Hai compilato il codice utilizzando java versione 9 e il tuo JRE attuale è la versione 8. Prova ad aggiornare il tuo JRE a 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

24
dare consigli sulla scelta logica potrebbe non essere affatto una buona soluzione ... cosa succede se il progetto viene eseguito con jre-8 in primo luogo e qualcuno ha accidentalmente compilato un modulo contro 9?
Eugene

Credo che l'aggiornamento non causerà ancora alcun problema poiché non ci saranno problemi di compatibilità con le versioni precedenti. Ed era logico poiché credo che il compilatore sia stato aggiornato all'ultima versione.
Nithin

9
stai pensando in termini di un piccolo progetto sandbox; per i progetti aziendali, non è mai un cambiamento facile. Ad esempio, alcuni bug sono stati corretti in 8 per i generici che facevi affidamento sugli effetti collaterali di loro in 7; o l' HashMapordine è cambiato da 7 a 8 ... ecc. L'ho affrontato. Semplicemente dicendo: passare al 9 è una buona opzione, ma mai semplice e veloce
Eugene

se stai affermando in termini di livelli di progetto aziendale, sì, hai ragione e sono assolutamente d'accordo con questo punto. L'aggiornamento / declassamento non è mai un'opzione praticabile in tali scenari.
Nithin

@nithinpankaj Essenzialmente ogni volta che ho provato a utilizzare Java 9, è stato generato un nuovo errore. Senza motivo per l'aggiornamento, ho smesso di provare e ho un'opinione piuttosto
negativa

37

IDE: Eclipse Oxygen.3

Per correggere temporaneamente il problema, procedi come segue:

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

Una soluzione permanente probabilmente implica l'installazione di JDK 9.

FYI 1.8 è quello che viene chiamato Java 8.

Barra laterale

Di recente sono tornato a Java dopo un'incursione in C # (una boccata d'aria fresca) e ho installato Eclipse Oxygen su un sistema pulito che non aveva mai installato Java su di esso prima. Questo è tutto predefinito con una nuova installazione di Eclipse Oxygen, ma in qualche modo Eclipse non può ottenere i propri parametri per abbinare il jdk installato. Questo è il secondo progetto che ho creato e la seconda volta che mi sono imbattuto in questo mal di testa. È ora di tornare a C #?

Domanda correlata

è stato compilato da una versione più recente di Java Runtime (file di classe versione 53.0)


interessante. Quindi significa che bytecode NON è compatibile con le versioni successive?
toto


6

53sta per java-9, quindi significa che qualunque classe tu sia stata compilata javac-9e con cui provi a eseguirla jre-8. Ricompila quella classe con javac-8o usa jre-9


1

Sto scrivendo questo perché ho trovato le altre risposte difficili da capire.

Essenzialmente il tuo JRE non è aggiornato e / o Eclipse non è configurato per utilizzare il JRE più recente.

Su Windows, vai su Pannello di controllo -> Programmi -> Java -> aggiorna e procedi con l'aggiornamento di java

oppure, se non disponi di Java, vai al sito Web di Oracle e scarica il JRE più recente.

Una volta fatto, vai in eclipse e sotto la vista del progetto, fai clic con il pulsante destro del mouse sul tuo progetto, seleziona Java Build Path, fai doppio clic su JRE System Library, quindi seleziona Workspace Default JRE 14.1.

Se una versione recente di Java non viene visualizzata qui, probabilmente non è installata. Controlla la tua versione JRE (NON JDK) e assicurati che sia recente. In tal caso, prova a riavviare il computer, quindi riprova.


0

Vai alla sezione Progetto, fai clic su proprietà> quindi su compilatore Java> verifica che il livello di conformità del compilatore sia 1.8, altrimenti non dovrebbe esserci alcun avviso giallo in basso


0

L'aggiornamento delle dipendenze gradle funziona per me: fai clic con il pulsante destro del mouse sul progetto -> Gradle -> Aggiorna progetto Gradle.


0

Ho riscontrato un problema simile dalla console dopo aver creato un Jar in Intellij. L'utilizzo della configurazione Java per l'aggiornamento a una versione più recente (Windows -> Configura Java -> Aggiorna -> Aggiorna ora) non ha funzionato e si è bloccato alla versione 1.8 (Java 8).

Per passare a una versione più recente in locale ho dovuto installare Java 15 JDK da https://www.oracle.com/uk/java/technologies/javase-jdk15-downloads.html e aggiungerlo alle impostazioni dell'ambiente di runtime Java.

Impostazioni Java Runtime Environment


-1

Per una soluzione temporanea, fai clic con il pulsante destro del mouse su Progetto => Proprietà => Compilatore Java => laggiù, seleziona il livello di conformità del compilatore 1.8 => Compatibilità .class 1.8 => Compatibilità sorgente 1.8 .

Quindi il tuo codice inizierà a essere eseguito nella versione 1.8 .

Grazie e saluti, Akshay kenjale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.