java - 如何回滚 java.util.Map 的版本?

标签 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,因为我猜测 Java 6 具有正确的 Map.class 版本,但令我惊讶的是,这不起作用。

谢谢, 本

最佳答案

尝试使用 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 指向 session 中正确的 JDK:
    export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
    

让我知道这是否有效。

关于java - 如何回滚 java.util.Map 的版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54953693/

相关文章:

java - Paths.get(args[0]) 不起作用

java - 随机数的分布

java - 无法找到 Artifact jackson-modules-java8 jar

java - jar 没有复制到 Tomcat 的 lib 文件夹

java - Google 帐户凭据更改帐户/注销

java - 如何在 JSF 中填充数据

java - H2 性能建议

Java 与 Maven : How to make Module B depend on jar of module A?

java - Log4j 不捕获异常

java - 在我的 GWT 应用程序运行时 (java.io.FilePermission) 上没有对文件的读/写访问权限