Contenido del Post:
Hola, comunidad de HolaMundoHub. 
Hoy vamos a resolver uno de los errores más frustrantes que puedes encontrar al ejecutar una aplicación Java:
A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: ... has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 52.0
¿Qué significa este error?
Este error ocurre cuando intentas ejecutar una aplicación Java compilada con una versión más nueva del JDK que la versión del Java Runtime (JRE) que tienes instalado.
En otras palabras:
Estás intentando correr un .jar
moderno con un Java viejo.
Traducción rápida de los números de versión:
Versión del archivo .class |
Requiere JDK |
52.0 |
Java 8 |
65.0 |
Java 21 |
En tu caso:
El archivo .class
fue compilado con Java 21, pero estás intentando ejecutarlo con un Java 8 o inferior.
¿Cómo solucionarlo?
Paso 1: Verifica tu versión de Java actual
java -version
Si ves algo como:
java version "1.8.0_202"
Estás usando Java 8 (class version 52).
Paso 2: Instala una versión de Java más reciente
Para correr archivos .class
de versión 65, necesitas al menos Java 21.
En Ubuntu, por ejemplo:
sudo apt install openjdk-21-jdk
En Windows o Mac, puedes usar:
Paso 3: Verifica que estás usando el Java correcto
Si tienes varias versiones instaladas, asegúrate de usar la nueva:
sudo update-alternatives --config java
Y verifica nuevamente:
java -version
¿Y si no puedes actualizar Java?
También puedes recompilar el proyecto con una versión más antigua de Java (por ejemplo, Java 8), usando el flag:
javac -target 1.8 -source 1.8 MiArchivo.java
Pero esto solo funcionará si el código no depende de funciones nuevas introducidas en Java 9 o superior.
Conclusión
Este error no es complicado… solo es Java diciendo:
“Este .jar
es muy moderno para mí. Actualízame o bájale la versión al código.”
¿Te ha pasado esto en producción o fue en tu entorno local? Cuéntanos tu caso.
— Equipo de SoporteHub