#java
#java
Вопрос:
Я запустил программу, и после обновления java я получаю при попытке запустить любой код (компиляция работает просто отлично). Я смотрел на людей, у которых были похожие проблемы, но они, похоже, в основном просто излагали проблему, которая возникает, и не давали мне слишком много идей о том, как это исправить.
Сначала я попытался переустановить java, но, похоже, это ничего не дало. Затем я посмотрел на саму JRE, но для нее было установлено автоматическое обновление. Просто чтобы убедиться, я снова попытался найти обновления, но ничего не появилось. Я также попробовал основы перезагрузки компьютера и Visual Code Studio. Самое большое, с чем я еще не пробовал возиться, — это мой JDK, потому что я, честно говоря, не слишком много знаю о том, как его настроить, и беспокоюсь, что могу его сломать.
c:UserskmaafDesktopCoding HomeworkPP3>java BenchmarkTimer
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: BenchmarkTimer has been compiled by a more recent version of the Java Runtime (class file version 55.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)
Еще раньше сегодня программа, с которой я работал, работала нормально. Только после обновления все пошло наперекосяк. Заранее благодарю за любую помощь или советы, которые вы можете мне дать!
РЕДАКТИРОВАТЬ: я использую командную строку, чтобы попытаться запустить свой код. Используя командную строку, он сообщает, что моя версия java — 1.8.0_211-b12, в то время как мой JDK утверждает, что он равен 11.0.02
Комментарии:
1. Версия класса Java 52.0 означает java 8, а версия класса java 55.0 означает java 11. Сколько версий java установлено? На одном компьютере можно установить несколько разных версий Java, сообщение об ошибке означает
BenchmarkTimer
, что оно было скомпилировано для java 11, но Visual Code Studio настроен для java 8.2. Ваш вопрос неясен.
BenchmarkTimer
Ваш код? Вы скомпилировали ее самостоятельно до «события», вызвавшего проблемы? Установлена ли у вас Java 8? Установлена ли у вас Java 11? Какая версия Java настроена для использования VCS? Вы проверили «Настройку JDK» ( marketplace.visualstudio.com/items?itemName=redhat.java ) чтобы увидеть, как VCS Java находит JDK для использования? Используете ли вы один и тот же JDK для запуска кода из командной строки?3. @Abra — Неясно, что это сообщение об ошибке исходит от VSC. Для меня это похоже на командную строку, что может означать, что проблема связана с версией
java
команды, которая находится в эффективном ПУТИ командной строки.4. После этого я попытался перекомпилировать. Я не менял JDK, который я использую с момента обновления. Открывая примечания к выпуску в моем JDK, в нем указана версия 11.0.02. Также да, я использую командную строку; Я обновлю свой вопрос, чтобы отразить это. Ввод java -версии в командную строку дает мне версию Java «1.8.0_211». Похоже, здесь есть несоответствие, но я не совсем уверен, как это исправить. Версия, на которой, похоже, работает моя JRE, также 1.8.0_211.
Ответ №1:
Мне удалось это исправить! Спасибо за вашу помощь! По какой-то причине на моем компьютере скрывалось несколько копий java; удалив их все, а затем переустановив, удалось все исправить. Спасибо всем, кто помог мне!