Skip to content

CAUTION: This site hosts draft documentation for the next release. For published content of the latest release, visit

Migrating from Java 8 to Java 11

Support for OpenJDK 11 was added in OpenJ9 version 0.10.0.

The following new OpenJ9 features and notable changes apply when OpenJ9 is built with Java SE 11 class libraries. This information exists elsewhere in the documentation but is summarized here for convenience.

Support for JDK enhancement proposals (JEP)

The new JEPs that are supported are listed in the following topics:

New OpenJ9 features and changes

The following table lists the new OpenJ9 features and notable changes with the OpenJ9 release in which they were added:

Features and changes OpenJ9 release
The path that is specified by the default -Xoptionsfile value is the <java_home>/lib directory, where <java_home> is the directory for your runtime environment. For Java 8, the path is the VM directory that is listed in Directory conventions. First release
Low-overhead heap profiling is supported. JEP 331 provides a mechanism for sampling Java heap allocations with a low overhead via the JVM Tool Interface (JVMTI).

Restrictions: JEP 331 is implemented for OpenJ9 with the following limitations:
  • The balanced and metronome garbage collection policies are not supported.
  • The JEP331 JVMTI agent and the Health Center agent both set a sampling interval, which by default is different. If both agents are used at the same time the Health Center agent will get incorrect results, unless the sampling intervals are adjusted to use the same value.
OpenSSL support for the ChaCha20 and ChaCha20-Poly1305 algorithms is available. The version of OpenSSL must be version 1.1.x or later. For more information, see -Djdk.nativeChaCha20. 0.15.0
The -verbose:module option, which writes information to stderr for each module that is loaded and unloaded, is now supported. 0.25.0
The default value of the -XX:MaxDirectMemorySize option, which limits the amount of heap memory that is used for direct byte buffers, is the same as the maximum heap size. For JDK 8, the VM default value is 87.5% of the maximum heap size. 0.32.0