Cómo solucionar java.lang.UnsupportedClassVersionError: versión mayor.menor no compatible

Resuelto ERJAN asked hace 12 años • 52 respuestas

Estoy intentando utilizar Notepad++ como mi herramienta todo en uno para editar, ejecutar, compilar, etc.

Tengo JRE instalado y configuré mi variable de ruta al .../bindirectorio.

Cuando ejecuto "Hola mundo" en Notepad++, aparece este mensaje:

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)
       .........................................

Creo que el problema aquí es sobre las versiones; Algunas versiones de Java pueden ser antiguas o demasiado nuevas.

  1. ¿Cómo lo soluciono?
  2. ¿Debo instalar el JDK y configurar mi variable de ruta al JDK en lugar de JRE?
  3. ¿ Cuál es la diferencia entre la PATHvariable en JRE o JDK?
ERJAN avatar Apr 30 '12 18:04 ERJAN
Aceptado

El número de versión que se muestra describe la versión del JRE con la que es compatible el archivo de clase.

Las principales cifras reportadas son:

Java SE 21 = 65,
Java SE 20 = 64,
Java SE 19 = 63,
Java SE 18 = 62,
Java SE 17 = 61,
Java SE 16 = 60, 
Java SE 15 = 59,
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

(Fuente: Wikipedia )

Para solucionar el problema real, debe intentar ejecutar el código Java con una versión más reciente de Java JRE o especificar el parámetro de destino al compilador de Java para indicarle al compilador que cree código compatible con versiones anteriores de Java.

Por ejemplo, para generar archivos de clase compatibles con Java 1.4, utilice la siguiente línea de comando:

javac -target 1.4 HelloWorld.java

Con las versiones más recientes del compilador de Java, es probable que reciba una advertencia acerca de que la ruta de clase de arranque no está configurada. Más información sobre este error está disponible en una publicación de blog Nueva advertencia de javac para configurar una fuente anterior sin bootclasspath .

Juha Palomäki avatar Jul 11 '2012 11:07 Juha Palomäki

java.lang.UnsupportedClassVersionErrorEsto sucede debido a un JDK más alto durante el tiempo de compilación y un JDK más bajo durante el tiempo de ejecución.

Vivek Kumar Ray avatar Jun 28 '2012 06:06 Vivek Kumar Ray

En Eclipse, simplemente fui al comando de menú Ventana -> Preferencias -> Java -> Compilador y luego configuré el "Nivel de cumplimiento del compilador" en 1.6.

Cacovsky avatar May 02 '2013 18:05 Cacovsky