Since Oracle JDK 8 is undergoing EOL and Oracle has changed the Terms and Conditions for using the newer Oracle JDK versions, the attention is shifting to other vendors providing the JDK. In this post, we are giving an overview of some vendors offering JDK binaries, which versions of JDK they provide and what is their support plan.
What is not free?
First, to clarify. You can continue using Oracle JDK 8 indefinitely, but Oracle will not provide public updates for commercial use after January 2019. In reality, ‘Nothing someone says before the word but really counts’. The updates which include security patches and bugfixes could be very important. Fortunately, there are several solutions to this problem. One option is to upgrade to a newer JDK version offered by Oracle itself. Oracle JDK 11 is the next Long Term Support (LTS) version. It is $free for developing, testing, prototyping and demonstrating, but not to be used in production. Unfortunately, the keyword ‘but’ comes here again. However, Oracle contributed all the JDK features to OpenJDK 11. Therefore, Oracle JDK 11 and Oracle OpenJDK 11 are now interchangeable. Since Oracle OpenJDK is provided under the GPL + CE license, everyone is free to use it commercially. Here is the catch: with the new release cadence, every six months a new feature version of OpenJDK will be released, and Oracle is only going to provide quarterly updates for the latest version of Oracle OpenJDK. Therefore, if you want to stay up to date, every six months you have to upgrade the latest OpenJDK available.
Are there other options?
There are many other vendors offering JDK binaries. The majority of them are based on the OpenJDK source hosted in a Mercurial repository. The Java Community Process (JCP) provides a Technology Compatibility Kit (TCK) to certify whether a JDK build meets the Java standards. Once a build passes the TCK it can be referred to as ‘Java SE compatible’. The certification process requires a commercial license from Oracle.
The following is a list of JDK vendors with some basic information about their release schedule, TCK compatibility, and the supported platforms. The sorting does not represent any significance.
AdoptOpenJDK offers OpenJDK binaries either with HotSpot JVM or with OpenJ9 JVM. The former is the JVM from the OpenJDK community and it is the most used JVM (also in Oracle JDK). The latter is a JVM developed by IBM and is now contributed to the Eclipse community.
AdoptOpenJDK is still working with Oracle to reach an agreement to use Java SE TCK. Nevertheless, they claim that their binaries undergo extensive testing from all available OpenJDK test suites.
AdoptOpenJDK release roadmap follows the schedule of OpenJDK, i.e., a new feature release every six months and a maintenance/security update every three months. Additionally, every three years, AdoptOpenJDK designates a feature release as LTS.
Amazon Correto is an OpenJDK Java SE TCK distribution provided by Amazon under GPL + CE license (which means free to use in production). Correto 8 can be used as a substitute for OpenJDK 8 and will be quarterly updated by Amazon until at least June 2023. Correto 11, corresponding to OpenJDK 11, will be released in the first half of 2019 and will receive quarterly updates until at least August 2024.
SapMashine is another OpenJDK Java SE TCK build offered by SAP under GPL + CE license. Currently, SapMachine 11 is an LTS release. The goal of the SapMachine team is to keep SapMachine as close as possible to OpenJDK. SAP is also one of the biggest external contributors to the OpenJDK project.
Red Had provides OpenJDK builds for RHEL and Windows. The updates and support for Red Hat OpenJDK require a subscription. The subscription for RHEL includes also a subscription for Red Hat OpenJDK. Windows systems used with Red Hat Middleware subscription include a Red Hat OpenJDK subscription, too. Otherwise, an additional subscription for OpenJDK in windows is required.
Zulu is a certified JDK build by Azul Systems. Zulu is available for Linux, Windows, macOS, Solaris, and Docker. Zulu is free to download and use but the security updates and bug fixes are only provided under Zulu Enterprise subscription. The same Java versions designated as LTS by Oracle and Open JDK community are designated as LTS by Zulu, too. Zulu Enterprise offers access to LTS updates for 8 years.
IBM produces JDK SE 8 binaries with IBM J9 VM for AIX, Linux®, z/OS and IBM i platforms. The J9 virtual machine has been contributed to the Eclipse community as OpenJ9 VM since September 2017. If you are interested in using J9 VM with newer Java versions, IBM recommends JDK binaries from AdoptOpenJDK. IBM will continue to release security updates for JDK 8 till April 2022.
We compiled some information about JDK binaries offered by different vendors. The list of the vendors that we mentioned here is by no means complete. Everybody is free to fetch the OpenJDK sources and build her/his own JDK binaries. A short summary is given in the following table.