GoogleCloudPlatform / gradle-appengine-templates

Freemarker based templates that build with the gradle-appengine-plugin
438 stars 205 forks source link

java.lang.IllegalArgumentException: Class file is Java 8 but max supported is Java 7 #87

Open adiantek opened 7 years ago

adiantek commented 7 years ago

Is there any way to fix it without downgrade to Java 7?

Unable to update: java.lang.IllegalArgumentException: Class file is Java 8 but max supported is Java 7: myclassfile at com.google.appengine.tools.admin.Application.checkJavaVersion(Application.java:1378) at com.google.appengine.tools.admin.Application.checkJavaClassVersion(Application.java:1347) at com.google.appengine.tools.admin.Application.checkJavaVersion(Application.java:1329) at com.google.appengine.tools.admin.Application.copyOrLinkFile(Application.java:1256) at com.google.appengine.tools.admin.Application.copyOrLink(Application.java:1235) at com.google.appengine.tools.admin.Application.copyOrLink(Application.java:1224) at com.google.appengine.tools.admin.Application.copyOrLink(Application.java:1224) at com.google.appengine.tools.admin.Application.copyOrLink(Application.java:1224) at com.google.appengine.tools.admin.Application.copyOrLink(Application.java:1224) at com.google.appengine.tools.admin.Application.copyOrLink(Application.java:1224) at com.google.appengine.tools.admin.Application.copyOrLink(Application.java:1222) at com.google.appengine.tools.admin.Application.populateStagingDirectory(Application.java:756) at com.google.appengine.tools.admin.Application.createStagingDirectory(Application.java:708) at com.google.appengine.tools.admin.AppAdminImpl.doUpdate(AppAdminImpl.java:570) at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:57) at com.google.appengine.tools.admin.AppCfg$UpdateAction.execute(AppCfg.java:1490) at com.google.appengine.tools.admin.AppCfg.executeAction(AppCfg.java:357) at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:218) at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:119) at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:115) com.google.appengine.tools.admin.AdminException: Unable to update app: Class file is Java 8 but max supported is Java 7: myclassfile at com.google.appengine.tools.admin.AppAdminImpl.doUpdate(AppAdminImpl.java:578) at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:57) at com.google.appengine.tools.admin.AppCfg$UpdateAction.execute(AppCfg.java:1490) at com.google.appengine.tools.admin.AppCfg.executeAction(AppCfg.java:357) at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:218) at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:119) at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:115) Caused by: java.lang.IllegalArgumentException: Class file is Java 8 but max supported is Java 7: myclassfile at com.google.appengine.tools.admin.Application.checkJavaVersion(Application.java:1378) at com.google.appengine.tools.admin.Application.checkJavaClassVersion(Application.java:1347) at com.google.appengine.tools.admin.Application.checkJavaVersion(Application.java:1329) at com.google.appengine.tools.admin.Application.copyOrLinkFile(Application.java:1256) at com.google.appengine.tools.admin.Application.copyOrLink(Application.java:1235) at com.google.appengine.tools.admin.Application.copyOrLink(Application.java:1224) at com.google.appengine.tools.admin.Application.copyOrLink(Application.java:1224) at com.google.appengine.tools.admin.Application.copyOrLink(Application.java:1224) at com.google.appengine.tools.admin.Application.copyOrLink(Application.java:1224) at com.google.appengine.tools.admin.Application.copyOrLink(Application.java:1224) at com.google.appengine.tools.admin.Application.copyOrLink(Application.java:1222) at com.google.appengine.tools.admin.Application.populateStagingDirectory(Application.java:756) at com.google.appengine.tools.admin.Application.createStagingDirectory(Application.java:708) at com.google.appengine.tools.admin.AppAdminImpl.doUpdate(AppAdminImpl.java:570) ... 6 more

And from maven: [INFO] GCLOUD: Reading application configuration data... [INFO] GCLOUD: [INFO] GCLOUD: [INFO] GCLOUD: Beginning interaction for module default... [INFO] GCLOUD: Unable to stage app: Class file is Java 8 but max supported is Java 7: myapp/DemoServlet.class in /home/xxx/src/xxx/target/appengine-try-java-1.0/WEB-INF/lib/appengine-try-java-1.0.jar

patflynn commented 7 years ago

java 8 is not available in App Engine Standard at the moment. There is an alpha which you could try signing up to.

Otherwise you'll have to wait for the public Beta.

loosebazooka commented 7 years ago

In gradle you should be able to set the target version of your module to java7 so it creates java7 output.

see sourceCompatability and targetCompatability in https://docs.gradle.org/current/userguide/java_plugin.html

adiantek commented 7 years ago

@loosebazooka I wrote: "without downgrade to Java 7". Thanks @patflynn, I will fill it tomorrow.

loosebazooka commented 7 years ago

Oh whoops, sometimes people have the same problem because they want to build with java8.