Как откатить версию java.util.Map?

Этот вопрос должен быть актуален для всех, кто интересуется взаимосвязью между версиями стандартных объектов Java и версией JDK, а также тем, как откатить вашу версию Java.

Итак: как мне откатить версию моего объекта java.util.Map? Я уверен, что мне придется откатить и другие объекты.

Я пытаюсь следовать этим инструкциям (https://cloud.google.com/solutions/mobile/mobile-firebase-app-engine-flexible ), и когда я пытаюсь заставить maven запустить мой локальный сервер или выполнить развертывание в механизме облачных приложений, я вижу такие ошибки:

[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile
(default-compile) on project backend: Compilation failure [ERROR]
  C:\Users\bensw\AndroidStudioProjects\firebase-appengine-backend\src\main\java\com\google\cloud\solutions\flexenv\common\LogEntry.java:[23,17]
cannot access java.util.Map [ERROR]   bad class file:
/modules/java.base/java/util/Map.class [ERROR]     class file has
wrong version 55.0, should be 53.0 [ERROR]     Please remove or make
sure it appears in the correct subdirectory of the classpath.

Я нашел несколько сообщений здесь по этой теме, но я не уверен, как применить эти ответы к этой ситуации. Я не использую IntelliJ и не знаю, какой SDK мне нужно изменить. Файл класса имеет неправильную версию 52.0, должна быть 50.0

Я попытался вернуться к Java 6, основываясь на предположении, что Java 6 имеет правильную версию Map.class, но, к моему удивлению, это не сработало.

Спасибо, Бен

Не совсем понятно, что вы спрашиваете..

Daniele 02.03.2019 01:17

Эта ошибка означает, что ваша версия JRE среды выполнения отличается и несовместима с версией JDK, которую вы используете для создания этого файла JAR.

howie 02.03.2019 01:48

Эта ошибка выглядит так, как будто вы смешиваете части двух разных версий JDK, используя JVM из более старой версии с путем начальной загрузки (библиотеки времени выполнения) из более новой. Без понятия, как это произойдет. Как вы установили/настроили Java?

Thilo 02.03.2019 01:49

Как я установил Java, немного туманно. Я думаю, что у меня могло быть любое количество JRE. Когда мой компьютер просит меня обновить Java, я не обращаю внимания, согласен я на это или нет. Я знаю, что у меня есть Open JDK типа OpenJDK-11.0.2. Я включил это в свой путь. С тех пор я удалил две JRE, которые у меня были от Oracle версии 6, у меня также была одна версия 8, которые все были удалены. Мне также интересно, не связано ли это с «app-engine-java», который поставляется с Google Cloud. Я не могу понять, как откатить версию этой штуки.

Ben 02.03.2019 17:04

Также: я почему-то не могу найти старые JDK. Даже если бы я мог найти более старый JDK, я не уверен, как я мог бы сопоставить версию JDK с этой системой нумерации версий 55.0 или 53.0. Я обратился за помощью в техподдержку Google, якобы они ответят мне в течение рабочего дня.

Ben 03.03.2019 01:51
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
5
208
1

Ответы 1

Попробуйте использовать Java 8 вместо 11.

  • Установите OpenJDK 8
    sudo apt install openjdk-8-jdk
    
  • Убедитесь, что вы используете правильную версию Java. Вы можете использовать обновление-альтернативы, чтобы выбрать правильную установку Java:
    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    
  • Убедитесь, что JAVA_HOME указывает на правильный JDK в вашем сеансе:
    export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
    

Дай мне знать, если это работает.

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