IBM and Java: 8, 11, and beyond
Supporting an open, performant, and cloud-optimized Java runtime for the future
IBM’s strategic position is to support an open, cloud-optimized Java™ runtime. IBM embraced OpenJDK and open-sourced its J9 Java Virtual Machine to the Eclipse Foundation, as Eclipse OpenJ9. IBM actively contributes to the AdoptOpenJDK community to build fully open source Java binaries based on OpenJDK and the OpenJ9 JVM. We recommend that our products, business partners, and customers use the LTS versions of these binaries, especially for JDK 11 and later. For the z/OS® platform, IBM will deliver an IBM SDK for z/OS, Java Technology Edition version 11, so that Java applications can rely on existing components like JZOS, and underlying IBM Z® software and hardware facilities.
IBM’s overall strategic direction for Java applications is to support an open, performant, and cloud-optimized Java runtime for the future. With this strategy, IBM embraced OpenJDK. See the following IBM Developer blogs to learn why:
- “IBM and Java: Looking forward to the future” (March 2019)
- “Java licensing has changed, and you could be affected” (January 2019)
We also contributed our J9 JVM technology to the Eclipse Foundation where it is now known as the openly-governed and 100% open-source Eclipse OpenJ9 project. The OpenJ9 JVM has been a key feature of the IBM SDK, Java Technology Edition for many years, providing fast startup, low memory footprint, and high throughput, as well as delivering platform-specific advantages for Java applications running on IBM Power® Systems and IBM Z. Eclipse OpenJ9 is the result of many years of research and development, making J9 one of the best-performing JVMs, as well as one that has been hardened from deployments across many enterprise customer sites and workloads.
IBM’s open-source Java strategy also means we are actively contributing to the AdoptOpenJDK community to build, test, and distribute Java binaries based on OpenJDK. The same team that produced the IBM SDK, Java Technology Edition for more than two decades now works in open source at OpenJDK, Eclipse OpenJ9, and AdoptOpenJDK to develop, test, build, and maintain open source Java runtimes in cooperation with the broader Java community. In fact, the IBM SDK has been based on the public OpenJ9 code from version 8 service refresh 5, and benefits with each release from the latest security, performance, and functional enhancements made in that project.
Now and for the future, IBM’s OpenJ9-based OpenJDK binaries are built at the AdoptOpenJDK community. We recommend that IBM products, customers, and business partners use these OpenJ9-based release binaries for Java LTS versions (currently Java 8 and 11) for their development and production use under an open source license. Going forward, our teams will be primarily focused on producing best-in-class OpenJDK binaries that leverage the OpenJ9 JVM technology and providing the same world-class IBM support for them. As a result, for platforms other than z/OS, IBM will not be producing an IBM SDK for Java 11 or later. Because not everyone can move immediately to OpenJDK binaries, we will continue to support IBM SDK, Java Technology Edition version 8 on all platforms until at least 2025 (see lifecycle dates for more information).
Many IBM products have already moved to using these open source releases as they transition from IBM SDK, Java Technology Edition version 8 to OpenJDK 11, and others will move in the near future. If you are using an IBM product that bundles an OpenJ9-based Java binary from AdoptOpenJDK, you will still get the same world-class IBM support for Java runtimes that is included with the IBM product’s support entitlement at no additional cost.
For the z/OS platform, we will produce an IBM SDK for z/OS, Java Technology Edition version 11. Like all other platforms, the IBM SDK for z/OS starts with the same OpenJDK and OpenJ9 code bases. On the z/OS platform, however, the SDK also embeds significant proprietary IBM technology to exploit underlying IBM Z software and hardware facilities. When released, this IBM SDK will support the complete Java 11 language specification, enabling Java 11-compliant applications to run on z/OS. The SDK will include the JZOS library for Java batch deployments, and integration with z/OS system services such as the launcher and toolkit. Additional z/OS-specific extensions will be added over time with service refreshes, enabling the full range of existing Java applications that rely on such z/OS extensions to be upgraded to Java 11.
Outside of IBM product use, we now provide enterprise Java support for stand-alone AdoptOpenJDK LTS release binaries with our IBM Runtimes for Business offering for a wide variety of platforms. This offering makes available to all Java users the same world-class support previously made available only through IBM product support entitlement for our commercially licensed IBM SDK.
In summary, IBM’s strategic focus is on an open Java runtime built by the AdoptOpenJDK community, and using the Eclipse OpenJ9 JVM to ensure that Java applications are optimized for the cloud with best-in-class startup time, low memory footprint, container awareness, and high performance. Our runtimes continue to be backed by our world-class enterprise support, which is available for IBM products and platforms and now also to a broader range of Java users through IBM Runtimes for Business.