Cómo solucionar el error java.lang.UnsupportedClassVersionError: número de versión incorrecto en el archivo .class

Cómo solucionar el error java.lang.UnsupportedClassVersionError: número de versión incorrecto en el archivo .class

Compiladores Java

Es un error común en el lenguaje de programación Java que se produce cuando se intenta ejecutar un archivo de clase Java que fue compilado por una versión diferente del compilador Java que la versión JRE que se está utilizando para ejecutarlo. Vamos allá.

UnsupportedClassVersionError

Su solución no es demasiado compleja pero lo que es difícil es pensar en la dirección correcta porque la causa de los diferentes tipos de UnsupportedClassVersionError es diferente.

Causa

Se produce cuando se compila una clase Java en una versión superior del compilador Java y se ejecuta en una versión inferior de la máquina virtual Java o JRE. Por ejemplo, si has compilado su clase Java con el compilador Java SE 17 y luego intentas ejecutarla en Java SE 11 o Java SE 8, obtendrás este error.

Del mismo modo, aparecerá el error de número de versión incorrecto en el archivo de clase si compilas su archivo fuente de Java mediante el compilador Java SE 11, que se produce cuando instalas el JDK de Java 11 en su máquina y luego intentas ejecutarlo, pero hay una versión inferior de JRE configurada en el PATH o es la primera en el PATH si tienes varios JRE instalados en tu máquina.

La clave aquí es que necesitas ejecutar tu programa Java o archivo de clase en la versión mayor o igual a la versión que utilizas para compilar tu programa Java. Java es compatible con versiones anteriores, lo que significa que un archivo JAR creado por Java 1 seguirá funcionando en Java SE 17, pero un archivo JAR creado por Java SE 17 no puede funcionar en Java 1, ya que no tiene todas las nuevas mejoras.

El punto es encontrar qué versión de Java utilizas para compilar; ejecutar el programa puede tomar tiempo y requiere experiencia para solucionar este tipo de problemas y pensar cuál es la dirección correcta.

Así que, para entenderlo mejor es necesario reproducirlo mediante un sencillo ejemplo en Java:

1.- Crear Loan.java y compilarlo con JDK 1.6 o Java SE 17

2.- Ejecute Loan.class con JRE 1.5 o cualquier versión inferior a Java 17 como Java 8 o Java 11. Aquí he utilizado Java 5

C:\Program Files\Java\jre1.5.0_06\bin>java -versionjava version “1.5.0_06”


C:\Program Files\Java\jre1.5.0_06\bin>java Loanjava.lang.UnsupportedClassVersionError: Bad version number in .class file

at java.lang.ClassLoader.defineClass1(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)
Fuente: javarevisited

Conclusiones

Ahora ya sabes que tu código fuente está compilado para una versión superior de JRE o Java runtime si no funciona en JDK 1.5 entonces intenta ejecutarlo en JDK 1.6 y podrás eliminar “Bad version number in .class file”. El mismo problema puede llegar a cualquier otra versión de Java, por ejemplo, un archivo de clase compilado por JDK 11 no se ejecutará en Java 8 o Java 9 JRE. Del mismo modo, un archivo de clase compilado por el compilador Java 17 no se ejecutará en Java SE 11 JRE.

Te invito a conocer a profundidad nuestro contenido y también la oportunidad de continuar desarrollándote con Metaphorce.mx

Nuestro equipo proveé de soluciones y conocimiento en tecnologías de la información, gobierno de TI y Desarrollo de soluciones a la medida para tu organización. De esta manera nuestros servicios de consultoría y transformación digital aceleran a tu organización a alcanzar sus metas. No dudes en contactarnos.

Te invitamos a continuar leyendo más de nuestros artículos. ¿Tienes alguna sugerencia o duda respecto a los servicios de consultoría y transformación digital para acelerar a tu organización y alcanzar tus metas? No dudes en contactarnos.

Fuente y agradecimiento a: Javarevisited | Javin Paul

smart city
Sigamos en contacto

Comparte este artículo y síguenos en nuestras distintas Redes Sociales

¿Iniciamos?

Conoce todas las soluciones tecnológicas para acelerar

la transformación digital de tu organización.

One Reply to “Cómo solucionar el error java.lang.UnsupportedClassVersionError: número de versión incorrecto en el archivo .class”

  1. Asking questions are in fact fastidious thing if you are not understanding
    something totally, however this piece of writing offers good understanding yet.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *