domingo, 12 de enero de 2020

Java: Unsupported major.minor version 52.0

Es común encontrar excepciones en proyectos Java. No importando si el código está "bien escrito", siempre habrá algo que nos causará un disgusto futuro.

Recordar:Una excepción es una anomalía en el flujo normal de un programa. Un error, muchas veces, es un fallo irreparable en la que el desarrollados y/o usuario no les queda otra cosa más que pedir clemencia al Creador de Universo y la solución caiga del mismo cielo.

Uno de las más famosas es el NullPointerException, pero en está ocasión lo que nos trae ahora es el Error  Unsupported major.minor version 52.0

¿Por qué ocurre este error?
Parece ser que es porque una clase fue compilada en una versión de JDK específica y se quiere ejecutar en Otra  Versión de JDK. La clase java.lang.UnsupportedClassVersionError nos lanza este error.


Ejemplo. Compilas tu programa en JDK 5 y tratas de ejecutarlo con un JDK 4.

La siguiente tabla nos puede aclarar un poco las cosas.

Tabla

//Tabla de versiones y número correspondiente
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

La versión 52 corresponde al JDK 8. Lo que quiere decir que...


¡COMPILAMOS EL CÓDIGO EN UN JDK 8 Y TRATAMOS DE EJECUTARLO EN UN JDK MENOR!

Posibles soluciones, si es que usas Eclipse, son:

1. Project -> Properties -> Java Compiler Enable -> Compiler compliance level to 1.7, 1.6, 1.5 ...

2. Window -> Preferences -> Java ->  Compiler ->Compiler compliance level to 1.7, 1.6, 1.5 ...

3. Revisar que el JDK y el JRE sean la versión 8.

Links:
https://javarevisited.blogspot.com/2015/05/fixing-unsupported-majorminor-version.html