Come risolvere java.lang.UnsupportedClassVersionError: versione major.minor non supportata


1573

Sto cercando di utilizzare Notepad ++ come strumento di modifica, esecuzione, compilazione, ecc.

Ho installato JRE e ho impostato la mia variabile di percorso nella .../bindirectory.

Quando eseguo il mio "Hello world" in Notepad ++, ricevo questo messaggio:

java.lang.UnsupportedClassVersionError: test_hello_world :
 Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
       .........................................

Penso che il problema qui riguardi le versioni; alcune versioni di Java potrebbero essere vecchie o troppo nuove.

  1. Come lo aggiusto?
  2. Devo installare JDK e impostare la mia variabile di percorso su JDK anziché su JRE?
  3. Qual è la differenza tra la PATHvariabile in JRE o JDK?

hai installato anche jdk? jre è l'ambiente Java RunTime, per creare app java è necessario anche jdk
CyprUS

sì, l'ho fatto, e ora la mia variabile di percorso indica dove si trova jdk. ma ho ancora questo errore "versione secondaria 51.0 non supportata" pensi che dovrei installare la versione precedente di jdk?
sto

20
Questo è successo a me su Mac OS X quando stavo avendo problemi a causa della strana situazione Apple Java 6 e Oracle Java 7 su OSX in questi giorni. versione corta: compilare con JDK7, eseguire con JDK6, ottenere questo.
Warren P

7
In java ClassName dovrebbe iniziare con la lettera maiuscola;)
Ashish Panery,

5
Per El Capitan, questa risposta ha risolto il tutto per me: stackoverflow.com/a/34201991/1615594
tsuz

Risposte:


1940

Il numero di versione visualizzato descrive la versione di JRE con cui è compatibile il file di classe.

I numeri principali riportati sono:

Java SE 14 = 58,
Java SE 13 = 57,
Java SE 12 = 56,
Java SE 11 = 55,
Java SE 10 = 54,
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

(Fonte: Wikipedia )

Per risolvere il problema effettivo, provare a eseguire il codice Java con una versione più recente di Java JRE o specificare il parametro target al compilatore Java per indicare al compilatore di creare codice compatibile con le versioni precedenti di Java.

Ad esempio, per generare file di classe compatibili con Java 1.4, utilizzare la seguente riga di comando:

javac -target 1.4 HelloWorld.java

Con le versioni più recenti del compilatore Java è probabile che venga visualizzato un avviso sul percorso della classe bootstrap non impostato. Maggiori informazioni su questo errore sono disponibili in un post sul blog Nuovo avviso javac per l'impostazione di una fonte precedente senza bootclasspath .


167
"Il numero di versione mostrato descrive quale versione se Java è stato usato per compilare il codice." No non lo fa. Mostra la versione di JRE con cui è compatibile il file di classe. Utilizzando le opzioni di compilazione incrociata è possibile utilizzare un JDK 1.7 per compilare il codice con una versione di classe 1.1 (fino a 1.7).
Andrew Thompson,

85
Questa risposta non spiega come risolverlo quando viene posta la domanda?
Jonathan Leung,

7
Questa è una bella soluzione per la compilazione di una versione precedente da Eclipse direttamente: stackoverflow.com/a/16345710/2091700
Alphaaa

19
IN eclipse project => Proerties => compilatore java; imposta "il livello di conformità del compilatore" sulla versione in base a jre o jdk. Quanto a me, è 1.6 per jre 1.6
Sam,

5
Ciò può verificarsi quando l'origine del compilatore è impostata in non conformità con JRE / JDK attualmente in fase di compilazione. Ad esempio, ho trovato i seguenti valori dalla cartella eclipse .settings, org.eclipse.jdt.core.compiler.compliance = 1.7, org.eclipse.jdt.core.compiler.source = 1.7, org.eclipse.jdt.core.compiler .codegen.targetPlatform = 1.7. E il mio compilatore era 1.6.0_32. Il problema è stato risolto dopo aver modificato i valori in 1.6. Il problema è nato dopo aver copiato il progetto da un'area di lavoro diversa in cui stavo usando JDK 1.7 :(
Gana,

367

java.lang.UnsupportedClassVersionError accade a causa di un JDK più alto durante il tempo di compilazione e di un JDK inferiore durante il runtime.


11
+1: /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/javarisolto questo collegamento simbolico ( ) con la versione utilizzata per la compilazione con javac risolto
ezdazuzena

1
Come posso effettuare le modifiche precedenti?
Ankur Raiyani,

8
Progetto -> Proprietà -> Compilatore Java Abilita le impostazioni specifiche del progetto. Quindi seleziona Livello di conformità del compilatore su 1.7, 1.6 o 1.5, crea e testa la tua app.
Vivek Kumar Ray,

Quando mi sono trasferito a Java 7, in qualche modo Eclipse ha continuato a provare a funzionare in Java 6 ... non ho idea del perché. Disinstallato il vecchio JDK ha fatto il trucco per me.
HDave

9
@ezdazuzena lo usa sudo update-alternatives --config javaper farlo.
Thorbjørn Ravn Andersen,

115

In Eclipse, sono appena andato al comando di menu Finestra -> Preferenze -> Java -> Compilatore e quindi impostare "Livello di conformità del compilatore" su 1.6.


3
In eclissi, a volte anche le sfaccettature del progetto devono essere modificate nella versione java appropriata.
Bilal Mirza,

6
Grazie. Vale la pena notare che l'impostazione dell'ambiente di esecuzione predefinito di Eclipse (il JRE che segue il percorso di compilazione) è un'impostazione separata . Avevo impostato JRE ma non il livello di conformità del compilatore; questo risolto.
mercoledì

E come hai tratto la conclusione dal messaggio di errore che questo era il posto giusto per impostare l'opzione?
Alexander,

Forse questo: stackoverflow.com/questions/7073485/… può aiutarti se stai usando la formica e l'eclissi.
OuuGiii,

La domanda riguarda Notepad ++ ma non Eclipse.
ottenuto il

60

Non ti preoccupare, l'ho risolto.

In realtà è semplice: è necessario installare ENTRAMBE JRE / JDK con la stessa versione.

JRE 6 -> JDK 6

JRE 7 -> JDK 7

E così via.


29
java 7 può gestire anche 6 senza problemi.
Damienix,

@damienix Probabilmente vuoi specificare che Java 7 JRE può gestire una classe compilata Java 6 senza problemi, altrimenti la tua affermazione porta alla confusione.
Frontear

43

Questo errore indica che stai tentando di caricare un file "class" Java che è stato compilato con una versione più recente di Java di quella che hai installato.

Ad esempio, il .classfile potrebbe essere stato compilato per JDK 7 e si sta tentando di eseguirlo con JDK 6.

Quindi la soluzione è:

  • Aggiorna il tuo runtime Java o
  • Ricompila la classe se hai il sorgente, usando il tuo compilatore Java locale (se ne hai uno).

    javac FileName.java

Per gli sviluppatori, ciò può accadere se un altro sviluppatore esegue il check in un file .class e hanno una versione di java più recente di te!


22

Stai tentando di eseguire il tuo programma con una versione Java che non supporta la versione in cui è stato compilato il codice. Quindi in pratica devi aver compilato il tuo codice con una versione successiva e provare a eseguirlo usando una versione precedente.

Come stai ottenendo

Unsupported major.minor version 51.0

e la versione 51.0 corrisponde a J2SE 7 che molto probabilmente hai compilato il tuo codice in Java 7 e provando a eseguirlo usando una versione precedente. Controlla cosa java -versionviene visualizzato. Dovrebbe essere la versione Java 7. In caso contrario, apportare le modifiche appropriate nel PERCORSO / JAVA_HOME. Oppure puoi compilare con la stessa versione che stai tentando di eseguire il codice. Se le configurazioni sono confuse puoi sempre dare un percorso assoluto /home/user/jdk1.7.0_11/bin/javace /home/user/jdk1.7.0_11/bin/java.


18

Ho avuto una situazione simile su Mac e il seguente processo ha funzionato per me:

Nel terminale, digitare

vi ~/.profile

Quindi aggiungere questa riga nel file e salvare

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk<version>.jdk/Contents/Home

dove versione è quella sul tuo computer, ad esempio 1.7.0_25.

Esci dall'editor, quindi digita il comando seguente per renderlo effettivo

source ~/.profile 

Quindi digitare java -version per verificare il risultato

java -version 

Cos'è il .profilefile?

Il file .profile è un file nascosto. È un file opzionale che indica al sistema quali comandi eseguire quando l'utente il cui file di profilo è connesso. Ad esempio, se il mio nome utente è bruno e c'è un file .profile in / Users / bruno /, tutto il suo contenuto verrà eseguito durante la procedura di accesso.

Fonte: http://computers.tutsplus.com/tutorials/speed-up-your-terminal-workflow-with-command-aliases-and-profile--mac-30515


16

Nella finestra del menu di Eclipse -> Preferenze -> Java -> Verifica compilatore anche "Configura impostazioni specifiche del progetto".

Se hai ancora l'errore con la stessa versione di Java: prova a eliminare manualmente la cartella di compilazione del tuo progetto. Quindi riavviare Eclipse.


14

Puoi avere una libreria JAR compilata in Java 7 e hai solo Java 6 come Java Runtime. Potrebbe accadere con alcune nuove biblioteche.


14

Il problema più comune è la configurazione errata della JAVA_HOMEvariabile che dovrebbe puntare alla giusta libreria Java Development Kit, se ne sono stati installati più.

Per trovare dove si trova la cartella Java dell'SDK, eseguire i comandi seguenti:

jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));'

Debian / Ubuntu

Per verificare quale java (openjdk) hai installato, controlla tramite:

dpkg -l "openjdk*" | grep ^i

o:

update-java-alternatives -l

Per cambiarlo, usa:

update-alternatives --config java

Prefisso con sudose richiesto.

per selezionare la versione alternativa di java.

Oppure controlla quali sono disponibili per l'installazione:

apt-cache search ^openjdk

Prefisso con sudose richiesto.

Quindi è possibile installare, ad esempio:

apt-get install openjdk-7-jre

Prefisso con sudose richiesto.

Fedora, Oracle Linux, Red Hat

Installa / aggiorna il pacchetto appropriato tramite:

yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel

Il java-1.7.0-openjdkpacchetto contiene solo Java Runtime Environment. Se si desidera sviluppare programmi Java, installare il java-1.7.0-openjdk-develpacchetto.

BSD

C'è un pacchetto OpenJDK 7 nella raccolta delle porte di FreeBSD chiamato openjdk7 che probabilmente deve essere riconfigurato.

Vedi: pagina wiki OpenJDK .

finestre

Basta installare la libreria del kit di sviluppo Java SE appropriata dal sito Oracle o installare

Jenkins

Se riscontri questo problema con Jenkins, vedi:

Tuttavia, selezionando la versione corretta di Java (più recente) update-alternativesdovrebbe funzionare.


Questa risposta ha funzionato per me quando ho provato a usare spark2-shell su un host dopo aver aggiunto il servizio spark a un cluster con cloudera.
Modifica il

12

Ho riscontrato lo stesso problema quando stavo lavorando con uno script Ant per compilare la mia applicazione.

Uso Eclipse per lo sviluppo della mia applicazione e ho modificato la versione del compilatore nelle proprietà di compilazione del progetto. Ma non ha funzionato per me. Poi ho scoperto che posso fornire la versione del compilatore nello script Ant.

Ho modificato lo script Ant nella sezione in cui compila i file Java.

<target name="build-java" depends="prepare-build">
    <echo message="Compiling java files"/>
    <javac ....
           target="1.5"...
    </javac>
</target>

Questo ha funzionato per me per risolvere il problema minore maggiore non supportato.



12

Ho avuto lo stesso problema con un progetto scritto in 1.7 e ho provato a eseguire in 1.6.

La mia soluzione in Eclipse:

  • Fare clic con il tasto destro del mouse su Proprietà progetto -> Percorso build Java -> Librerie

  • Seleziona la tua libreria di sistema JRE e fai clic su Modifica a destra, quindi scegli il JRE di destinazione.

  • Adesso vai a compilatore Java sulla sinistra e modifica il livello di conformità del compilatore sul tuo target.

Questo ha funzionato per me.


11

Come hanno risposto altrove, il programma Java viene eseguito su una versione precedente di Java rispetto a quella per cui è stato compilato. Deve essere "compilato" per compatibilità con le versioni precedenti. Per dirla in altro modo, esiste una discrepanza tra la versione Java di origine e quella di destinazione.

La modifica delle opzioni nei menu Eclipse non risponde al poster originale, il quale ha affermato di non utilizzare Eclipse. Su OpenJDK javac versione 1.7, è possibile eseguire la compilazione incrociata per 1.6 se si utilizzano parametri -sourcee -target, in più, fornire il file rt.jar della versione di destinazione (ovvero quella precedente) al momento della compilazione. Se effettivamente si installa 1.6 JRE, è possibile puntare alla sua installazione (ad esempio, /usr/lib/jvm/java-6-openjdk-i386/jre/lib/rt.jar su Ubuntu, / usr / jdk / jdk1. 6.0_60 / jre / lib / rt.jar su SunOS apparentemente. Mi dispiace, non so dove sia su un sistema Windows). Così:

javac -source 1.6 -target 1.6 -bootclasspath /usr/lib/jvm/java-6-openjdk-i386/jre/lib/rt.jar HelloWorld.java

Sembra che puoi semplicemente scaricare rt.jar da Internet e indicarlo. Questo non è troppo elegante però:

javac -source 1.6 -target 1.6 -bootclasspath ./rt.jar HelloWorld.java

10

Basato su questo...

J2SE 8 = 52
J2SE 7 = 51
J2SE 6.0 = 50
J2SE 5.0 = 49
JDK 1.4 = 48
JDK 1.3 = 47
JDK 1.2 = 46
JDK 1.1 = 45

In Eclipse, fai clic con il pulsante destro del mouse sul progetto in Esplora pacchetti:

Build Path -> Configura Build Path

Sotto:

Percorso build Java -> Librerie -> Aggiungi libreria -> Libreria di sistema JRE -> JRE installati -> Cerca .

Aggiungere il JRE richiesto selezionando la libreria nell'elenco disponibile al termine della ricerca.


10
  • Se si utilizza Maven, impostare il livello di compilazione Java. Apri una riga di comando e scrivi java -versionper il tuo livello di compilazione:

    Inserisci qui la descrizione dell'immagine

  • Se si utilizza IntelliJ IDEA, selezionare progetto → FileImpostazioniCrea distribuzione esecuzioneCompilatoreCompilatore Java . Quindi modificare il codice byte come 1.7 come questa immagine:

    Inserisci qui la descrizione dell'immagine


Avevo bisogno di fare anche un'installazione pulita maven dopo aver cambiato il pom.
Joe Borysko,

10

Se stai riscontrando questo problema durante l'utilizzo di Maven , puoi compilare il codice utilizzando il plug-in Maven Compiler .

 <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
       .....

AGGIORNAMENTO: impostare sourcee targetsu 1.8, se si utilizza JDK 8.


uno snippet su come utilizzare il plug-in per la compilazione incrociata sarebbe molto buono invece di visitare / aprire il collegamento
coding_idiot

8

Ho avuto lo stesso messaggio di errore durante l'esecuzione di Ant da Eclipse, ma le altre soluzioni menzionate qui non hanno risolto il mio problema. La cosa divertente era che l'esecuzione di Ant dalla riga di comando di Windows funzionava bene, quindi doveva essere un problema di configurazione all'interno di Eclipse.

Si è scoperto che in Eclipse è possibile specificare l'ambiente con cui Ant dovrebbe essere in esecuzione e questo è stato impostato come JRE anziché come JDK.

  • Vai a: Esegui -> Strumenti esterni -> Configurazioni strumenti esterni ...
  • Seleziona Ant build.xml per il tuo progetto (se hai più progetti)
  • Attiva la scheda 'JRE'
  • Qui è stato selezionato 'Separa JRE: jre6'. Quando l'ho cambiato in un JDK della serie 1.6 o 1.7, l'errore era sparito.

8

Come lo aggiusto?

Questo errore indica che JRE utilizzato per eseguire il codice di classe non riconosce la versione di Java utilizzata. Di solito perché la versione di Java che ha generato il file di classe (ovvero compilato) è più recente.

Per risolverlo, puoi farlo

a) Compilare i sorgenti Java con la stessa versione o precedente del compilatore Java che verrà utilizzata per eseguirlo. cioè installare il JDK appropriato.

b) Compila i tuoi sorgenti Java con la versione più recente del compilatore Java ma in modalità compatibilità. cioè usa il -targetparametro.

c) Esegui le tue classi compilate in un JRE che è la stessa o più recente versione utilizzata dal JDK per compilare le classi.

Puoi controllare le versioni con cui stai attualmente utilizzando javac -versionper il compilatore e java -versionper il runtime.

Devo installare JDK e impostare la mia variabile PATH su JDK anziché su JRE?

Per la compilazione, certamente, installa e configura il JDK specifico che desideri.

Per il runtime, è possibile utilizzare quello fornito con JDK o un JRE autonomo, ma a prescindere, assicurarsi di aver installato le versioni giuste e di aver configurato il PERCORSO in modo tale che non ci siano sorprese.

Qual è la differenza tra la variabile PATH in JRE o JDK?

La variabile d'ambiente PATH indica alla shell dei comandi dove cercare il comando digitato. Durante la digitazione java, l'interprete della shell dei comandi esaminerà tutte le posizioni specificate nella PATHvariabile, da sinistra a destra, per trovare il javafile eseguibile di runtime appropriato da eseguire. Se hai più versioni di Java installate, ovvero haijava eseguibile in più posizioni specificate nella variabile PATH, la prima che si incontra quando si passa da sinistra a destra sarà quella che viene eseguita.

Il comando del compilatore è javace viene fornito solo con JDK. Il comando di runtime è javae viene fornito con JDK ed è in JRE.

È probabile che tu abbia una versione (51.0 = Java 7) javacinstallata e che tu abbia anche la stessa versione di javainstallata, ma che un'altra versione precedente di javasia visualizzata in precedenza nel PERCORSO e quindi venga invocata invece di quella che ti aspetti .


7

È stata utilizzata una versione successiva di JDK per compilare e provare a eseguire da una versione precedente di JDK / JRE .

Per verificare ciò, vedere le informazioni sulla versione:

javac -version

java -version

Saranno diversi e javac avrà un numero di versione superiore.

Per ovviare a questo, eseguire utilizzando java dalla versione JDK o se si dispone di un JRE / JDK più recente che funzionerà pure.

which javacti dirà la posizione, ad esempio /usr/bin/javac,. Esegui direttamente utilizzando/usr/bin/java <program> .

OPPURE puoi impostare la variabile d'ambiente come soluzione permanente.


6

Ho avuto questo problema quando sono tornato a Java 6 e ho provato a eseguire le classi precedentemente compilate con Java 7. Ciò che ha funzionato per me è stato Preferenze> java> compilatore -> impostare il livello di conformità su 1.6 e soprattutto "configurare le impostazioni del progetto".


6

Oggi, questo messaggio di errore è apparso nel nostro Tomcat 7 su Ubuntu 12.04.2 LTS (Precise Pangolin):

/var/log/tomcat7/localhost.2014-04-08.log:
8 apr 2014 9:00:55 org.apache.catalina.core.StandardContext filterStart
SEVERE: Eccezione filtro avvio struts2
java.lang.UnsupportedClassVersionError: controller / ReqAccept: major.minor versione 51.0 non supportata (impossibile caricare il controller di classe. ReqAccept)

L' applicazione Struts è compilata con Java 7.

Si è scoperto che qualcuno usa "service tomcat [stop / start]" per riavviare Tomcat 7,

$ ps -ef | grep java
tomcat7 31783 1 32 20:13? 00:00:03 / usr / lib / jvm / default-java / bin / java ...
$ / usr / lib / jvm / default-java / bin / java -version
versione java "1.6.0_27"

Che causa l'errore "Non supportato major.minor versione 51.0".

Quando abbiamo usato "/etc/init.d/tomcat7 [stop / start]" per riavviare Tomcat 7, il problema è stato risolto.

$ ps -ef | grep java
tomcat7 31886 1 80 20:24? 00:00:10 /usr/local/java/jdk1.7.0_15/bin/java
$ /usr/local/java/jdk1.7.0_15/bin/java -version
versione java "1.7.0_15"


6

L'ho risolto. Ho corso:

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386

L'errore è fuorviante, Unsupported major.minor version 51.0. Questo dà l'impressione che la versione 51 (Java 7) non sia supportata. E dovremmo usare Java 6.

L'errore avrebbe dovuto essere:

L'attuale versione Java, 50, non è supportata. Utilizzare invece Java versione 7 (51: 0 e successive). »


6

Il file Java viene compilato con una versione diversa (versione del compilatore superiore) rispetto alla versione (versione di runtime inferiore) con cui si sta tentando di eseguirlo.

È chiaro che le classi compilate con le versioni precedenti dovrebbero essere eseguite nelle versioni successive successive. Ma il contrario (compilato con una versione del compilatore superiore e cercando di eseguirlo con una versione di runtime inferiore) a volte non è del tutto possibile.

Quindi ti viene mostrato questo errore quando tenti di eseguire il tuo programma. Major.minor versione xx non supportata

D: Ho creato un'applicazione in Java 7, ma quando i miei utenti provano a eseguirla ottengono un errore Major.minor versione 51.0 non supportata. Cosa significa e cosa posso fare al riguardo?

A: Se si compila un'applicazione utilizzando javac in Java 7, i file di classe risultanti avranno il numero di versione 51.0. Le versioni di Java precedenti alla 7 non riconoscono questo numero, quindi gli utenti dovranno eseguire l'aggiornamento a Java 7 prima di eseguire l'applicazione. Se non si utilizzano API Java 7, è possibile provare a compilare l'applicazione utilizzando javac -target 1.6 per creare un file di classe compatibile con 1.6. Se l'applicazione viene distribuita tramite webstart, è possibile specificare la versione minima richiesta. Per ulteriori informazioni, consultare i documenti su Java Web Start e JNLP qui. Questo problema scompare quando si attiva l'aggiornamento automatico a Java 7 per gli utenti finali che dispongono attualmente di Java 6 sui propri desktop. La tempistica per questo non è ancora determinata, vogliamo dare agli sviluppatori il tempo di risolvere prima qualsiasi problema tra il loro codice e JDK 7.

(Fonte: oracle.com .)


5

Oh Mac OS X sono stato in grado di risolvere questo problema impostando la variabile JAVA_HOME:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home

4

Prima diamo alcune basi giuste ...

JRE è un componente di NetBeans / Eclipse / standalone che ti fornirà librerie, JVM, plugin Java e Java web start. Si noti che non fornisce compilatori o debugger.

JDK è il superset di JRE insieme a complier e debugger.

Quindi, quando hai la tua libreria predefinita come JRE invece di JDK, ti divertirai a importare cose, ma non verranno compilate.

Invece, imposta il tuo percorso su JDK (io uso NetBeans e li ho impostati usando netbeans.conf in netbeans / etc / netbeans.conf e cambio il percorso).


3

Ho avuto il problema per cui dovevo eseguire una compilation Maven sul mio progetto dalla riga di comando per eseguire i test delle unità; se ho apportato una modifica alla classe di test e ho lasciato che Eclipse lo ricompilasse automaticamente, ho ricevuto l'errore "Non supportato major.minor versione 51.0".

Ho installato sia JDK6 che JDK7, ma tutte le mie impostazioni JRE puntavano a 1.6, sia nella pagina principale che nella pagina delle proprietà del progetto in Eclipse. Nessuna quantità di Maven Update Project e / o aggiornamento risolto.

Alla fine ho provato a chiudere il progetto e riaprirlo, e questo sembrava risolverlo! HTH


3

Hai compilato la tua classe Java con JDK 7 e stai cercando di eseguire la stessa classe su JDK 6.


3
  • Installa JDK 7.0.55 e imposta Java per Eclipse per JDK 7.0.55.
  • Compilare il progetto con JDK 7.0.55 configurando sul percorso di compilazione JDK 7.0.55.
  • Impostare il compilatore in Eclipse per JDK 7.0.55 dal menu Windows -> Preferenze -> Java -> Compilatore - selezionare 1.7.

3

La risposta è per il problema:

Eccezione nel thread "main" java.lang.UnsupportedClassVersionError: edu / stevens / cs549 / dhts / main / LocalContext: major.minor non supportata versione 52.0

Avevo lo stesso problema. Per coloro che hanno riscontrato questo problema nelle istanze ecS di AWS e in qualche modo sono stati reindirizzati qui a questa domanda. Sto rispondendo per quelli, e vorrei condividere questo come l'ho fatto. Stavo avendo problemi perché le istanze di Amazon EC2 eseguivano java versione 1.7 e forse il mio progetto non era compatibile con esso perché stavo usando Maven e in qualche modo era preconfigurato per java 1.8. Quindi ho installato una nuova versione di Java:

sudo yum -y install java-1.8.0

E quindi il passaggio importante è rimuovere la versione precedente:

sudo yum remove java-1.7.0-openjdk

Ricordati di eliminarlo dopo aver installato la nuova versione, altrimenti userebbe continuamente la stessa versione precedente e spero che risolva il tuo problema, cosa che ha fatto nel mio caso.

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.