¿Cómo arreglar java.lang.UnsupportedClassVersionError en Java?

El UnsupportedClassVersionError es una subclase del LinkageError y lo genera la máquina virtual de Java (JVM). Cuando se lee un archivo de clase y cuando los números de versión principal y secundaria no son compatibles, se genera este error y, especialmente durante la fase de vinculación, se genera este error.

Una instantánea de muestra de UnsupportedClassVersionError 

 

Situaciones en las que se lanza el error:

Cuando intentamos compilar un programa usando una versión superior de Java y ejecutarlo usando una JVM de una versión inferior, aparece este error. Pero el caso inverso no es cierto.

Por lo tanto, es importante tener en cuenta las versiones de Java 

 

Obtenga la versión de Java instalada:

java –version (En el símbolo del sistema (ventanas), podemos dar)

Comprobar la versión de Java

 

Arreglando el programa a través de la línea de comando:

Para superar el UnsupportedClassVersionError, podemos compilar nuestro código para una versión anterior de Java o ejecutar nuestro código en una versión más nueva de Java. Se trata de nuestra elección de decisión solamente. Si se utiliza una biblioteca de terceros, es mejor ejecutar una versión de Java más reciente y, si es para distribución, es mejor compilar a una versión anterior.

 

Uso de la variable de entorno JAVA_HOME:

Al hacer programas Java, siempre es bueno configurar JAVA_HOME y establecer ese valor en la ruta

También podemos verificar eso en el símbolo del sistema de la siguiente manera

C:\Windows\system32>echo %JAVA_HOME%
C:\Program Files\Java\jdk-9.0.4

 

Requisitos para ejecutar un programa java en un nuevo JRE:

Vaya al directorio y localice el directorio bin. Por ejemplo, si el JRE está en una ubicación como

C:\Program Files\Java\jdk-11.0.2, then navigate till C:\Program Files\Java\jdk-11.0.2\bin

Ejecutar el programa como

java <filename>   // Even we can give filename with full package

 

Requisitos para ejecutar un programa Java en un JRE anterior:

Ejemplo : 

C:\Program Files\Java\jdk1.8.0_31\bin\javac <filename along with package>

Para garantizar la compatibilidad, podemos señalar «-bootclasspath» en el rt.jar del JRE de destino:

javac -bootclasspath "C:\Program Files\Java\jdk1.8.0_31\jre\lib\rt.jar" 
\ -source 1.8 -target 1.8 <filename>

[Aplicable principalmente a JDK 8 e inferior]

Pero en JDK 9, se agregó el parámetro “–release” para reemplazar “-source” y “-target”. 

La opción “–release” admite los objetivos 6, 7, 8, 9, 10 y 11. Como ejemplo, usemos “–release” para apuntar a Java 8:

javac --release 8 <filename>

Hay muchos IDE disponibles para el desarrollo de Java

Veamos cómo podemos superar «UnsupportedClassVersionError» en Eclipse

Seleccionando JRE usando Java Build Path->JRE instalado

Selección de nivel de compilador de Java:

Selección del compilador de Java

Experto

Podemos controlar la versión de Java cuando creamos y empaquetamos un archivo en Maven. Cuando usamos Java 7 o anterior, establecemos el origen y el destino para el complemento del compilador.

Establezcamos el origen y el destino usando las propiedades del complemento del compilador:

–opción de liberación agregada en Java 9

Conclusión :

Al configurar los cambios del entorno, ya sea a través de la línea de comandos, a través de IDE o a través de Maven, podemos superar la «versión de clase no compatible».

Publicación traducida automáticamente

Artículo escrito por priyarajtt y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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