【问题标题】:GAE Deploy Java8/Java7 ErrorGAE 部署 Java8/Java7 错误
【发布时间】:2016-12-22 04:57:23
【问题描述】:

我正在尝试通过 Intellij IDEA 将一个基本上空的项目部署到 GAE。我创建了一个新项目,在 appengine-web.xml 中设置了我的项目 ID,并将其他所有内容保持原样。我收到以下错误,带有完整的日志here

java.lang.IllegalArgumentException: Class file is Java 8 but max supported is Java 7: org/eclipse/jetty/apache/jsp/JettyJasperInitializer$1.class in C:\Users\Tony\.m2\repository\com\google\appengine\appengine-java-sdk\1.9.48\appengine-java-sdk\appengine-java-sdk-1.9.48\jetty93\jetty-distribution\lib\apache-jsp\org.eclipse.jetty.apache-jsp-9.3.14.v20161028-nolog.jar

我尝试安装 JDK 7,设置一切使用它,使用 JDK 8 在 1.7 和 1.8 中编译,似乎没有任何效果。

【问题讨论】:

标签: java google-app-engine


【解决方案1】:

我也遇到了完全相同的错误,并通过将 Google Appengine SDK 从 1.9.48 降级到 1.9.46 来解决它。

所以 使用 Java 8 运行的 Intellij IDEA 2016.3.2(设置环境变量 IDEA_JDK_64 = jdk1.8.0_xx)和 Project Java SDK 设置为 1.7,Google Cloud SDK 通过环境变量设置为 GOOGLE_CLOUD_HOME = google-cloud-sdk-138.0.0-windows-x86_64时间>。

我现在可以部署到 Google Cloud,而无需“...类文件是 Java 8,但支持的最大文件是 Java 7:org/eclipse/jetty/apache/jsp/JettyJasperInitializer$1.class ...”

【讨论】:

    【解决方案2】:

    需要指定用于执行 GAE 应用程序的 java 版本。

    这可以通过修改您的 GAE 项目中的 appengine-web.xml 文件来完成。 检查以下示例中的<runtime> 标签:

    <?xml version="1.0" encoding="utf-8"?>
    <appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
        <application>your-app</application>
        <version>1</version>
        <threadsafe>true</threadsafe>
        <runtime>java8</runtime>
    </appengine-web-app>
    

    【讨论】:

      【解决方案3】:
      I have tried installing JDK 7, setting everything to use that
      

      maven 仍在使用 java 8

      【讨论】:

      • 这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
      • @CocoNess 它确实回答了这个问题,因此它被接受了。
      • @CocoNess 这为我指明了修复我的 pom 并告诉 maven 在 1.7 中编译的正确方向。所以这就是答案,至少在我的情况下是这样。
      猜你喜欢
      • 2017-05-30
      • 1970-01-01
      • 2021-11-30
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多