Был скомпилирован более поздней версией Java Runtime (версия файла класса 57.0) - PullRequest
0 голосов
/ 27 сентября 2019

Я получаю эту проблему, используя IntelliJ.Но у меня установлена ​​новейшая версия всего, что недавно установлено в моей системе.

... было скомпилировано более поздней версией среды выполнения Java (версия файла класса 57.0), этой версией JavaСреда выполнения распознает только версии файлов классов до 52,0

Я установил:

PATH как C: \ Program Files \ Java \ jdk-13 JAVA_HOME как: C: \ Program Files\ Java \ jdk-13 JRE_HOME as: C: \ Program Files \ Java \ jre1.8.0_221

Я установил путь, попытался найти изменение в структуре проекта

ЗАВЕРШЕНОСООБЩЕНИЕ ОБ ОШИБКЕ:

H:\087-JAVA\HelloWorld\src>java com.codewithmosh.Main
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/codewithmosh/Main has been compiled by a more recent version of the Java Runtime (class file version 57.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)

1 Ответ

0 голосов
/ 27 сентября 2019

Необходимо дважды проверить настройку среды PATH.C:\Program Files\Java\jdk-13 у вас в данный момент есть не правильно.Убедитесь, что у вас есть подкаталог bin для последней версии JDK вверху списка PATH. Исполняемый файл

java.exe находится в каталоге C:\Program Files\Java\jdk-13\bin, так что это то, что вам нужно иметьв PATH.

Используйте этот инструмент для быстрой проверки или редактирования переменных среды в Windows.Это позволяет изменить порядок PATH записей.Он также выделит недопустимые пути красным цветом.

Если вы хотите, чтобы ваш код запускался и на более низких версиях JDK, измените целевую версию байт-кода в IDE.См. этот ответ для соответствующих скриншотов.

См. Также этот ответ для версий файлов классов Java.Происходит следующее: вы создаете код с помощью байт-кода уровня языка Java 13 и 13 (целевой) и пытаетесь запустить его с Java 8, который является первой (по умолчанию) версией Java в соответствии с конфигурацией переменной PATH.

Решение состоит в том, чтобы иметь каталог Java 13 bin в PATH выше или вместо Java 8. В Windows вы можете автоматически добавить C:\Program Files (x86)\Common Files\Oracle\Java\javapath к PATH, что указывает на Java 8:

javapath

В этом случае удалите выделенную часть из PATH, а затем выйдите из системы, войдите в систему или перезагрузите систему, чтобы изменения вступили в силу.Вам необходимо Перезапустить с правами администратора , чтобы иметь возможность редактировать системные переменные (см. Кнопку в правом верхнем углу столбца системных переменных).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...