如何回退java.util.Map的版本?

时间:2019-03-01 23:28:09

标签: java maven google-app-engine

该问题应该与任何有兴趣了解标准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。 Class file has wrong version 52.0, should be 50.0

基于Java 6具有正确的Map.class版本的猜测,我试图切换回Java 6,但是令我惊讶的是,这没有用。

谢谢, 本

1 个答案:

答案 0 :(得分:0)

尝试使用Java 8而不是11。

  • 安装OpenJDK 8
    sudo apt install openjdk-8-jdk
    
  • 确保您使用的Java版本正确。您可以使用 update-alternatives 选择正确的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::")
    

让我知道是否可行。