我正试图通过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编译,似乎没什么用。
答案 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>