GAE部署Java8 / Java7错误

时间:2016-12-22 04:57:24

标签: java google-app-engine

我正试图通过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,设置一切使用它,在1.7和1.8中使用JDK 8编译,似乎没什么用。

3 个答案:

答案 0 :(得分:2)

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

所以 Intellij IDEA 2016.3.2使用Java 8运行(设置环境变量 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 ......”

答案 1 :(得分:1)

I have tried installing JDK 7, setting everything to use that

maven仍在使用java 8

答案 2 :(得分:1)

需要指定应该用于执行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>