Я пытался запустить файл класса Java и произошла ошибка JNI

Я пытался запустить файл класса Java и произошла ошибка 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)

Я несколько раз переустанавливал JRE и JDK, но это не помогло.

решение1

В основном JRE, который вы используете, старше, чем JDK, используемый для компиляции вашего класса. Ключевая информация в сообщении об ошибке:

... HelloWorld был скомпилирован с помощью более новой версии Java Runtime (версия файла класса 56.0), эта версия Java Runtime распознает только версии файла класса до 52.0

Судя по версиям файлов классов, JRE, которую вы используете, вероятно, был выпущен 5 лет назад? Вам нужно будет либо:

  • Обновите JRE до последней версии (лучший вариант)

ИЛИ

  • Установите соответствующую старую версию JDK, чтобы иметь возможность компилировать классы, совместимые с вашей текущей JRE.

ПРИМЕЧАНИЕ: Если вы установили более позднюю версию JRE и запускаете ее java -versionиз терминала, соответствует ли указанная версия той, что вы установили? Если нет, проверьте переменные среды PATHи свои JAVA_HOME- возможно, они указывают на неправильное местоположение.

Связанный контент