Со вчерашнего обновления (да, обновления для 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-8-openjdk-amd64
(который в настоящее время) или java-11-openjdk-amd64
. JavaSE-1.8
в левом списке, в правом появятся 2 варианта: java-8-openjdk-amd64
и java-1.8-openjdk-amd64
. Первый проверен. (Но я не думаю, что это имеет значение, потому что они должны быть одинаковыми.) Итак, все установлено на Java8. Почему ошибка все еще возникает?
Кстати, некоторые из моих проектов (включая helloworld) отмечены красным восклицательным знаком, но ошибка появляется в любом проекте, а не только в них.
Я имею, встречаются с той же проблемой ранее, когда я загрузил JDK 11 и попытался бездельничать с java 11, и я попробовал другие комментарии также, но никакой успех. Однако перейдите в Window
-> installed JREs
и установите новую версию jdk, решает мою проблему.
Мое предположение - то, что более новая версия Java должна быть удалена так, чтобы более ранняя версия Java могла использоваться, поскольку я читал из этого, Как я узнаю версию JDK, которую использует Eclipse?, комбинирует оба ответа, на которые это походило:
На самом деле Eclipse имеет свой собственный компилятор. Можно разработать приложения Java с помощью только JRE и Eclipse
Можно все еще проверить/установить, в какую версию JDK Вы хотите скомпилировать. Если Вы переходите к Окну-> Предпочтения, то нажмите "Java" из меню слева и затем "Компилятора". Первая установка позволяет Вам видеть, какая версия JDK выполняется. Я знаю, что это непосредственно не отвечает на Ваш вопрос, так как JDK на самом деле не компилирует его, но надо надеяться он помогает!
Я просто нашел иначе, что это может решить проблему.
Вот то, где добавить совместимость для него:
Добавьте jdk здесь:
И проблема решена.
Хотя вопрос довольно стар, перейдите к свойствам проекта и перейдите к Компилятору Java->, Настраивают Настройки Рабочей области...
Необходимо в основном подтвердить, что уровень совместимости компилятора и jdk быть используемым являются тем же.
Вы не должны получать ошибку после внесения этого изменения.