Ich habe versucht, eine Java-Klassendatei auszuführen und es ist ein JNI-Fehler aufgetreten

Ich habe versucht, eine Java-Klassendatei auszuführen und es ist ein JNI-Fehler aufgetreten
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)

Ich habe sowohl JRE als auch JDK mehrmals neu installiert und es hat nicht geholfen.

Antwort1

Grundsätzlich ist die von Ihnen verwendete JRE älter als das zum Kompilieren Ihrer Klasse verwendete JDK. Die Schlüsselinformationen in der Fehlermeldung lauten:

... HelloWorld wurde mit einer neueren Version der Java Runtime (Klassendateiversion 56.0) kompiliert, diese Version der Java Runtime erkennt nur Klassendateiversionen bis 52.0

Basierend auf den Klassendateiversionen wurde die von Ihnen verwendete JRE wahrscheinlich vor 5 Jahren veröffentlicht? Sie müssen entweder:

  • Aktualisieren Sie die JRE auf die neueste Version (bessere Option)

ODER

  • Installieren Sie ein passendes älteres JDK, damit Sie Klassen kompilieren können, die mit Ihrem aktuellen JRE kompatibel sind.

HINWEIS: Wenn Sie eine neuere JRE-Version installiert haben und diese java -versionvon einem Terminal aus ausführen, stimmt die angegebene Version mit der von Ihnen installierten überein? Wenn nicht, überprüfen Sie Ihre PATHUmgebungsvariablen JAVA_HOME– sie verweisen wahrscheinlich auf den falschen Speicherort.

verwandte Informationen