What's new in version 0.19.0
The following new features and notable changes since version 0.18.0 are included in this release:
- New binaries and changes to supported environments
- Option to print code cache usage to
stderr
at VM shutdown -
StringBuffer
andStringBuilder
above 1 G grow to the maximum size - jpackage packaging tool platform support
- Extended messages for
NullPointerException
not yet implemented - Compiler changes for Linux
- New JDK 14 features
Features and changes
Binaries and supported environments
Eclipse OpenJ9™ release 0.19.0 supports OpenJDK 14, which is available from the AdoptOpenJDK community at the following link:
OpenJDK 14 with Eclipse OpenJ9 is not a long term support (LTS) release.
The latest builds of OpenJDK with OpenJ9 for Java 8 and 11 at the AdoptOpenJDK community are for Eclipse OpenJ9 release 0.18.0. Features mentioned in these release notes are not available in these builds. Although it might be possible to build an OpenJDK 8 or OpenJDK 11 with OpenJ9 0.19.0, testing at the project is not complete and therefore support for any of these features is not available.
To learn more about support for OpenJ9 releases, including OpenJDK levels and platform support, see Supported environments.
Option to print code cache usage to stderr
at VM shutdown
A new command line option -XX:+PrintCodeCache allows you to print the code cache memory usage to stderr
when the VM shuts down.
StringBuffer
and StringBuilder
above 1 G grow to the maximum size
A 1 G char[]
or larger StringBuffer
and StringBuilder
now immediately grows to the maximum possible size for all current versions of Java, including Java 8. For Java 8 only, you can revert to the previous behavior of growing only as much as necessary to accommodate the String
being added, by using the option, -Djava.lang.stringBuffer.growAggressively=false
.
jpackage packaging tool platform support
The jpackage
utility is described in JEP 343 as a tool that "packages a Java application into a platform-specific package that includes all of the necessary dependencies." Full details of the tool are available at JEP 343: Packaging Tool. Be aware that jpackage
is supported on only the following OpenJ9 platforms: Linux®, macOS®, and Windows™. It is not supported on AIX® or z/OS® platforms.
Extended messages for NullPointerException
not yet implemented
JEP 358: Helpful NullPointerExceptions provides extended messages when a NullPointerException
is generated by the Java 14 VM and you have enabled the feature. However, be aware that this is not implemented in OpenJ9 at this time.
Compiler changes for Linux
Linux x86 64-bit, Linux on POWER® LE 64-bit, and Linux on IBM Z® 64-bit have all moved to the gcc 7.5 compiler. See Supported environments.
New JDK 14 features
The following features are supported by OpenJ9:
- JEP 343: Packaging Tool (Incubator)
Restrictions:jpackage
is supported on only the following OpenJ9 platforms: Linux®, macOS®, and Windows™. It is not supported on AIX® or z/OS® platforms. - JEP 352: Non-Volatile Mapped Byte Buffers
- JEP 358: Helpful NullPointerExceptions
- JEP 359: Records (Preview)
The following features are implemented in OpenJDK and available in any builds of OpenJDK 14 with OpenJ9:
- JEP 305: Pattern Matching for instanceof (Preview)
- JEP 361: Switch Expressions (Standard)
- JEP 367: Remove the Pack200 Tools and API
- JEP 368: Text Blocks (Second Preview)
You can find the full list of features for JDK 14 at the OpenJDK project. Any remaining features that are listed do not apply to OpenJ9.
Full release information
To see a complete list of changes between Eclipse OpenJ9 version 0.18.0 and version 0.19.0 releases, see the Release notes.