Java 8 Runtime FAQ

The following questions apply to the App Engine Java 8 standard runtime.

What are the changes between the Java 7 and Java 8 standard runtimes?

In general, all features available in the Java7 runtime should be available in the Java 8 runtime. If your application code depends on the presence of a Java security manager, or if some class loading restrictions are exposed by the Java 7 security sandbox, then your application may behave differently. Make sure you test your application with the Java 8 runtime before serving customer requests.

Can I use Kotlin with the Java 8 runtime?

Yes, check out our Kotlin samples in the GitHub repository.

Can I use IntelliJ IDEA Community Edition with App Engine?

Yes, using the built-in Maven integration.

However, note that you get more features with the Ultimate Edition, especially Web Application development features, and you get a tighter integration with the App Engine deployment process.

Does App Engine Cloud Endpoints v1.0 work in the Java 8 runtime?

No. You must migrate to Cloud Endpoints Frameworks version 2.0.

Why do I get java.lang.NoClassDefFoundError for repackaged classes?

Repackaged internal classes such as com/google/appengine/repackaged/com/google/common/collect/ImmutableList are not available anymore in the Java8 runtime, even if they are defined in previous versions of the App Engine API JAR. If you rely on them for Java 8, you can set appengine.api.legacy.repackaging=true in your appengine-web.xml until you find a way to stop depending on these and instead replace them with the public non-repackaged classes.

Can I do traffic splitting between Java 7 and Java 8?

Yes, each service/module version can use a different runtime version and traffic splitting is supported.

How are java threads treated when an instance isn't getting requests?

Threads created with the App Engine API's will continue to work as before.

Automatic Scaling Manual Scaling Basic Scaling
Instance terminates due to lack of requests. Instance terminates after the last request (default: 5 minutes) Runs forever.

What Metadata server features are supported in App Engine Standard?

App Engine Standard Java8 runtime supports the following Metadata server urls:

//computeMetadata/v1/project/numeric-project-id (pending)
 /computeMetadata/v1beta1/project/numeric-project-id  (pending)

Why does my request seem to hang forever?

If you create a thread pool on a request, you must make sure you explicitly shut it down before the current request terminates.

Send feedback about...

App Engine standard environment for Java