2012-07-05 16 views
18

Ho un progetto in Eclipse che in precedenza utilizzava JRE7 e faceva riferimento alle librerie di sistema JRE7. Ho assolutamente bisogno che funzioni ora in JRE6. Non ho usato alcuna sintassi specifica di Java 7 in modo che il codice sorgente sia del tutto compatibile. Ecco cosa ho già fatto:Come posso convertire il mio progetto Eclipse in una versione precedente di Java?

  • I Installato JDK6.
  • Sono quindi andato a Finestra> Preferenze> Java> JRE installati e impostato JRE6 come predefinito.
  • Ho configurato il percorso di costruzione del mio progetto per fare riferimento alla libreria di sistema JRE6 e non a quella JRE7.
  • Infine sono andato a Esegui configurazioni> JRE e impostalo per l'esecuzione in JRE6.

Immediatamente dopo che ultimo passo, la parte superiore del dialogo mostra un messaggio che dice:

JRE non è compatibile con compatibilità file di progetto .class: 1,7

E quando corro il progetto ottengo questo messaggio di errore:

java.lang.UnsupportedClassVersionError: ExampleProcessingApp : Unsupported major.minor version 51.0 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:314) 
    at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:146) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
    at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:608) 
    at sun.applet.AppletPanel.createApplet(AppletPanel.java:798) 
    at sun.applet.AppletPanel.runLoader(AppletPanel.java:727) 
    at sun.applet.AppletPanel.run(AppletPanel.java:380) 
    at java.lang.Thread.run(Thread.java:679) 

Come ho detto in precedenza, il codice effettivo del il progetto non è diverso dalla sintassi di Java 6, quindi dovrebbe essere eseguito in JRE6. Quindi presumibilmente ho bisogno di ricompilare in qualche modo tutti i file .class dal codice sorgente. Pensavo che Eclipse lo avrebbe fatto automaticamente. Qualche idea?

+6

hai pulito la directory di costruzione? – sergiofbsilva

+0

Controlla anche se hai una versione precedente di Java. Potrebbe essere necessario aggiornarlo o provare a reinstallare la versione sul tuo computer. – Kurty

risposta

35

In primo luogo, pulire il vostro progetto:

Progetto> Clean

Se questo non sistemare le cose ...

secondo controllo il vostro progetto specifico compilatore Java:

Progetto> Proprietà > Compilatore Java

+0

In realtà ho già fatto il secondo passo che hai menzionato, ma non ho pulito/ricostruito il mio progetto e sembra che l'abbia risolto. Molte grazie! – Jonathan

3

Ho pensato che Eclipse lo avrebbe fatto automaticamente. Qualche idea?

No Eclipse non pulisce tutti i progetti finché non glielo chiedi. Pulisce solo i file di classe generati delle fonti che hai modificato. Dovresti fare una build pulita della tua soluzione, ricostruire tutto ed eseguire di nuovo, dovrebbe funzionare bene.

1

Sono a capo di un caso in cui la pulizia del progetto non ha risolto il problema. In realtà ho dovuto chiudere e riaprire il progetto specifico per farlo funzionare.

7

Il secondo metodo fornito da Colin ha funzionato per me.

Qui è una rappresentazione visiva di tutte le fasi di questo approccio:

enter image description here enter image description here enter image description here enter image description here

0

Grazie a tutti. Anche se è risolto, Vorrei aggiungere un altro modo per farlo per aggiungere un altro sapore.


si può fare modificando manualmente le preferenze di progetto in file di project_directory/.settings/org.eclipse.jdt.core.prefs e quindi aggiornare il progetto in Eclipse.

Change from 1.7 to 1.6

Problemi correlati