Eccezione nel thread “main” java.lang.UnsupportedClassVersionError: a (major.minor non supportato versione 51.0)

Possibile duplicato:
versione principale 51. non supportata

Ho installato JDK7, un semplice programma di parole ciao viene compilato, ma quando eseguo questo ho seguito l’eccezione.

Exception in thread "main" java.lang.UnsupportedClassVersionError: a (Unsupported major.minor version 51.0) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) 

Ho controllato java -version al prompt dei comandi, mostra la versione 1.4.2_03 di Java, ma quando ho provato ad installare la nuova versione java da java.com si dice che ho consigliato la versione di Java 7.

Copiare il contenuto delle impostazioni PATH su un blocco note e verificare se la posizione per la 1.4.2 viene prima di quella del 7. In tal caso, rimuovere il percorso alla 1.4.2 nell’impostazione PATH e salvarlo.

Dopo aver salvato e applicato “Variabili d’ambiente”, chiudi e riapri la linea cmd. In XP il percorso non si riflette nei programmi già in esecuzione.

Prova sudo update-alternatives --config java dalla riga di comando per impostare la versione del JRE che si desidera utilizzare. Questo dovrebbe risolverlo.

Supponendo che tu stia usando Eclipse, su un MAC puoi:

  1. Avvia Eclipse.app
  2. Scegli Eclipse -> Preferences
  3. Scegli Java -> Installed JREs
  4. Fai clic sul pulsante Add...
  5. Scegli MacOS X VM come tipo JRE. Premere Avanti.
  6. Nel campo “JRE Home:”, digita /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
  7. Dovresti vedere le librerie di sistema nella lista intitolata “Librerie di sistema JRE:”
  8. Dai un nome al JRE. Il nome consigliato è JDK 1.7 . Fai clic su Fine.
  9. Seleziona la casella accanto alla voce JRE appena creata. Ciò farà in modo che Eclipse lo utilizzi come JRE predefinito per tutti i nuovi progetti Java. Clicca OK.
  10. Ora crea un nuovo progetto. Per questa verifica, dal menu, selezionare File -> New -> Java Project .
  11. Nella finestra di dialogo che appare, inserisci un nuovo nome per il tuo progetto. Per questa verifica, digitare Test17Project
  12. Nella sezione JRE della finestra di dialogo, selezionare Use default JRE (currently JDK 1.7)
  13. Fai clic su Fine.

Spero che questo ti aiuti

Ho avuto questo problema, dopo aver installato jdk7 accanto a Java 6. I binari sono stati correttamente aggiornati usando update-alternatives --config java a jdk7, ma la variabile d’ambiente $JAVA_HOME indicava ancora la vecchia directory di Java 6.

Sembra che tu abbia bisogno di cambiare il percorso del tuo eseguibile java per abbinare la versione più recente. Fondamentalmente, l’installazione di Java più recente non significa necessariamente che la macchina sia configurata per utilizzare la versione più recente. Non hai menzionato alcun dettaglio della piattaforma, quindi è tutto quello che posso dire.