Cómo solucionar java.lang.UnsupportedClassVersionError: versión mayor.menor no compatible
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 .../bin
directorio.
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.
- ¿Cómo lo soluciono?
- ¿Debo instalar el JDK y configurar mi variable de ruta al JDK en lugar de JRE?
- ¿ Cuál es la diferencia entre la
PATH
variable en JRE o JDK?
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 .
java.lang.UnsupportedClassVersionError
Esto 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.
En Eclipse, simplemente fui al comando de menú Ventana -> Preferencias -> Java -> Compilador y luego configuré el "Nivel de cumplimiento del compilador" en 1.6.