
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)
我已經重新安裝了JRE和JDK好幾次了,但沒有幫助。
答案1
基本上,您使用的 JRE 比用於編譯您的類別的 JDK 更舊。錯誤訊息中的關鍵訊息是:
... HelloWorld 已由更新版本的 Java 運行時(類文件版本 56.0)編譯,該版本的 Java 運行時僅識別最高版本為 52.0 的類文件
根據類文件版本,您使用的 JRE 可能是 5 年前發布的?您將需要:
- 將 JRE 更新到最新版本(更好的選擇)
或者
- 安裝相符的舊版 JDK,以便您可以編譯與目前 JRE 相容的類別。
java -version
注意:如果您安裝了更新的 JRE 版本並且從終端運行,則給定的版本是否與您安裝的版本相符?如果沒有,請檢查您的變數PATH
和JAVA_HOME
環境變數 - 它們可能指向錯誤的位置。