2011-08-30 31 views
78

Possible Duplicate:
unsupported major .minor version 51.0Excepción en hilo java.lang.UnsupportedClassVersionError "principal": un (versión no compatible mayor.menor 51,0)

he instalado JDK7, un programa simple palabra hola consigue compilar pero cuando corro esto lo consiguió siguiente excepción.

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) 

yo nos registramos java -version el símbolo del sistema, se muestra la versión de Java 1.4.2_03 pero cuando he intentado instalar una nueva versión de Java desde java.com dice que estoy teniendo versión recomendada Java 7.

+1

Tenga en cuenta que puede compilar para un tiempo de ejecución Java anterior con la opción "-objetivo" a javac. –

+1

No es un duplicado: este problema es que el JDK7 está presente, justo detrás de JDK1.4.2 en la ruta. –

+1

Para MacOSX, lo siguiente funcionó en mi máquina. export JAVA_HOME =/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre –

Respuesta

33

Copie el contenido de la configuración de PATH en un bloc de notas y compruebe si la ubicación de la 1.4.2 es anterior a la del 7. Si es así, elimine la ruta a 1.4.2 en la configuración RUTA y guárdela.

Después de guardar y aplicar "Variables de entorno", cierre y vuelva a abrir la línea de cmd. En XP, la ruta no se refleja en los programas que ya están en ejecución.

+0

Sí, tengo una entrada en la ruta anterior a la ruta de JDK 7 con "H: \ sw \ general \ oracle10g \ jre \ 1.4.2 \ bin". ¿Debo eliminar esto y debería cambiar la variable PATH en la sección variable del sistema con esta ruta modificada? – Adnan

+0

Sí. Elimine la referencia a "H: \ sw \ ... \ 1.4.2 \ bin;" desde la RUTA en la sección variable del sistema. Aplique los cambios y luego cierre la línea de comando existente y vuelva a abrirla. – arunmur

+1

: Gracias v v mucho por su valioso tiempo, está funcionando bien ahora. – Adnan

2

Parece que tiene que cambiar la ruta del ejecutable java para que coincida con la versión más reciente. Básicamente, la instalación de la última versión de Java no necesariamente significa que su máquina está configurada para usar la última versión. No mencionó ningún detalle de la plataforma, así que eso es todo lo que puedo decir.

+0

Gracias por tu valioso tiempo. ¿Cómo podría cambiar la ruta a mi Java ejecutable? Estoy usando Windows XP. – Adnan

+1

Consulte esto: http://www.java.com/en/download/help/path.xml. Probablemente pueda verificar dónde apunta la ruta actual y cambiarla para que sea correcta. Tenga mucho cuidado al modificar la variable PATH. Puede ensuciar seriamente su computadora. – hvgotcodes

+0

. Establecí la ruta y JAVA_HOME en el punto JDK7. – Adnan

71

Pruebe sudo update-alternatives --config java desde la línea de comandos para establecer la versión del JRE que desea utilizar. Esto debería arreglarlo.

+0

Gracias, esto funcionó por completo en Ubuntu 12.04 – markdrake

+0

¡Lo hice para Ubuntu Server 12.04 también! :) – xorinzor

+0

Esto funcionó para mí, pero solo después de reiniciar Eclipse. – elliptic1

9

Asumiendo que están utilizando Eclipse, en un MAC se puede:

  1. lanzamiento Eclipse.app
  2. Elija Eclipse -> Preferences
  3. Elija Java -> Installed JREs
  4. Haga clic en el botón Add...
  5. Elija MacOS X VM como el tipo de JRE . Presiona Siguiente.
  6. En el "Inicio JRE:" campo, tipo de /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
  7. Debería ver las bibliotecas del sistema en la lista titulada "bibliotecas del sistema de JRE:"
  8. Dale JRE un nombre. El nombre recomendado es JDK 1.7. Haga clic en Finalizar.
  9. Marque la casilla de verificación junto a la entrada de JRE que acaba de crear. Esto hará que Eclipse lo use como el JRE predeterminado para todos los nuevos proyectos de Java. Haga clic en Aceptar.
  10. Ahora, crea un nuevo proyecto. Para esta verificación, desde el menú, seleccione File -> New -> Java Project.
  11. En el cuadro de diálogo que aparece, ingrese un nuevo nombre para su proyecto. Para esta verificación, escriba Test17Project
  12. En la sección JRE del cuadro de diálogo, seleccione Use default JRE (currently JDK 1.7)
  13. Haga clic en Terminar.

Esperanza esto ayuda

+1

En Mac OS X Yosemite (10.10.5), encontré el jdk en **/Library/Java/JavaVirtualMachines/jdk1.7.0_79 .jdk/Contents/Home/** – GiriB

+0

Ahorras mi tiempo, muchas gracias ~ – BinGoBinBin

+0

Recuerda también cambiar la ruta de compilación para que los proyectos existentes utilicen el nuevo JDK – yankel

8

tuve este problema, después de instalar JDK7 lado de Java 6. Los binarios se actualizan correctamente usando update-alternatives --config java a JDK7, pero la variable de entorno $JAVA_HOME todavía señalaron la edad directorio de Java 6 .

Cuestiones relacionadas