eclipse: версия файла класса 53.0), эта версия Java Runtime распознает только версии файла класса до 52.0

Со вчерашнего обновления (да, обновления для Linux) eclipse запрещает мне запускать даже самый простой helloworld:

has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0

Полный текст ошибки:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: gitplayground/HelloWorld has been compiled by a more recent version of the Java Runtime (class file version 53.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(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)

Я пытался обновить JRE (и JDK):

  • окно -> настройки -> java -> установленные JRE. Я мог бы проверить: java-8-openjdk-amd64 (который в настоящее время) или java-11-openjdk-amd64.
  • Окно -> Настройки -> Java -> Компилятор. Уровень соответствия компилятора установлен равным 1,8 (он не знает java 11. Он знает java 9.)
  • Окно 119>
  • -> настройки -> java -> Установленные JRE -> Среда выполнения. При нажатии на JavaSE-1.8 в левом списке, в правом появятся 2 варианта: java-8-openjdk-amd64 и java-1.8-openjdk-amd64. Первый проверен. (Но я не думаю, что это имеет значение, потому что они должны быть одинаковыми.)
  • Я пытался обновить затмение. (Нет доступных обновлений)

Итак, все установлено на Java8. Почему ошибка все еще возникает?

Кстати, некоторые из моих проектов (включая helloworld) отмечены красным восклицательным знаком, но ошибка появляется в любом проекте, а не только в них.


  • Я сейчас использую XUbuntu 18.04 (до обновления все работало нормально)
  • Я использую Фотон Eclipse
  • Я использую только стандартный API Java
  • Я использую git и подключаемый модуль eclipse git
2
задан 5 May 2018 в 11:17

2 ответа

Я имею, встречаются с той же проблемой ранее, когда я загрузил JDK 11 и попытался бездельничать с java 11, и я попробовал другие комментарии также, но никакой успех. Однако перейдите в Window -> installed JREs и установите новую версию jdk, решает мою проблему.

Мое предположение - то, что более новая версия Java должна быть удалена так, чтобы более ранняя версия Java могла использоваться, поскольку я читал из этого, Как я узнаю версию JDK, которую использует Eclipse?, комбинирует оба ответа, на которые это походило:

На самом деле Eclipse имеет свой собственный компилятор. Можно разработать приложения Java с помощью только JRE и Eclipse

Можно все еще проверить/установить, в какую версию JDK Вы хотите скомпилировать. Если Вы переходите к Окну-> Предпочтения, то нажмите "Java" из меню слева и затем "Компилятора". Первая установка позволяет Вам видеть, какая версия JDK выполняется. Я знаю, что это непосредственно не отвечает на Ваш вопрос, так как JDK на самом деле не компилирует его, но надо надеяться он помогает!

Я просто нашел иначе, что это может решить проблему.

Вот то, где добавить совместимость для него:

image

Добавьте jdk здесь:

image

И проблема решена.

0
ответ дан 2 December 2019 в 07:41

Хотя вопрос довольно стар, перейдите к свойствам проекта и перейдите к Компилятору Java->, Настраивают Настройки Рабочей области...

Необходимо в основном подтвердить, что уровень совместимости компилятора и jdk быть используемым являются тем же.

Вы не должны получать ошибку после внесения этого изменения.

0
ответ дан 2 December 2019 в 07:41

Другие вопросы по тегам:

Похожие вопросы: