Estaba intentando ejecutar un archivo de clase Java y se produjo un error jni

Estaba intentando ejecutar un archivo de clase Java y se produjo un error jni
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld ha
s been compiled by a more recent version of the Java Runtime (class file version
 56.0), this version of the Java Runtime only recognizes class file versions up
to 52.0
        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)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

He estado reinstalando JRE y JDK varias veces y no ayudó.

Respuesta1

Básicamente, el JRE que utiliza es anterior al JDK utilizado para compilar su clase. La información clave aquí en el mensaje de error es:

... HelloWorld ha sido compilado por una versión más reciente de Java Runtime (versión de archivo de clase 56.0), esta versión de Java Runtime solo reconoce versiones de archivos de clase hasta 52.0

Según las versiones del archivo de clase, el JRE que utiliza probablemente se lanzó hace 5 años. Necesitará:

  • Actualice el JRE a la última versión (mejor opción)

O

  • Instale un JDK anterior correspondiente para que pueda compilar clases compatibles con su JRE actual.

NOTA: Si ha instalado una versión de JRE más reciente y la ejecuta java -versiondesde una terminal, ¿la versión proporcionada coincide con la que instaló? De lo contrario, verifique sus variables de entorno PATHy JAVA_HOMEde entorno; probablemente estén apuntando a la ubicación incorrecta.

información relacionada