Intro

If you stay up to date on news from the Java community, you have heard that Oracle has changed their support model for Java.

According to Oracle website, Java SE 8 is going through the End of Public Updates process for legacy releases.  This means that Oracle will continue to provide free public updates and auto updates of Java SE 8, until January 2019 for commercial users and at least until December 2020 for personal users.

Changes to the Oracle JDK

In the past, many of us have simply downloaded Oracle JDK and used it in development, testing and production.

Then, in 2018, Oracle changed the license of their JDK. Instead of a single JDK build available both for commercial and free users, they offered two different JDK builds:

  • Oracle JDK (commercial), which can be used in development and testing for free, but you have pay to use it in production
  • Oracle Open JDK (open source), which can be used in any environment for free

The up to date prices on the Oracle Java SE Subscription can be found here.

Java SE Platform ProductsMonthly Subscription PriceSubscription MetricVolume
Java SE Desktop Subscription2,5Named User Plus1 - 999
2,0Named User Plus3,000 - 9,999
1,75Named User Plus10,000 - 19,999
1,5Named User Plus20,000 - 49,999
1,25Contact for Details50,000+
Java SE Subscription250000Processor1 - 99
237500Processor100 - 249
225000Processor250 - 499
200000Processor500 - 999
175000Processor1,000 - 2,999
150000Processor3,000 - 9,999
12500Processor10,000 - 19,999
-Contact for details20,000+

The changes to the Oracle licenses forced us to look for other JDK vendors. Most of them have different support models (free and paid for), and different attitudes toward providing updates for multiple Java versions.

As Oracle is not the only vendor in this game, it’s time to look beyond their JDK.

Devexperts is happy to share with you the results of our research.

JDK builds

Basically, there is only one set of source code for the JDK. It is hosted in Mercurial at OpenJDK.

Anyone can take the source code, produce a build, and post it. So, Oracle created a certification process that should be used to ensure the build is valid.

This certification is run by the Java Community Process, which provides a Technology Compatibility Kit (TCK or JCK as Java). If an organization produces an OpenJDK build that passes the TCK then that build can be described as “Java SE compatible”.

The most popular and famous builds are distributed by Red Hat, Azul and community-led Adopt OpenJDK.

Here is the full list of JDK builds we’ve researched:

  • Oracle Commercial JDK
  • RedHat Open JDK
  • Azul Zulu
  • Oracle OpenJDK
  • AdoptOpenJDK
  • Amazon Corretto

We’ve assessed all JDK builds using the following criteria:

  • Long-term support (LTS) options
  • TCK Compliance
  • Free / Commercial basis
  • Support of additional features & tools (Web-start, IntelliJ IDEA, Java FX, etc.)
  • Supported platforms
  • Backed by a large corporation

The key differences we will be describe in the following text and the full list of criteria comparisons will be presented in a table at the end of this publication.

Oracle Commercial JDK

For years, many of us have been used Oracle JDK for free and so it has often been our default option. We got used to it.

Staying with the Oracle commercial JDK will be the easy choice for many companies. Oracle Commercial JDK is the best option for those who don’t want to change anything and are ready to pay.

LTS options

Oracle provides its customers with a 3-year support plan for Java 8 (which can be extended to 5 years) and a 5-year support plan for Java 11 (which can be extended to 8 years).

ReleaseGA DatePremier Support UntilExtended Support UntilSustaining Support
Java 8March 1, 2014March 1, 2022March 1, 2025Indefinite
Java 9 (non-LTS)September 1, 2017March 1, 2018Not AvailableIndefinite
Java 10 (18.3^)(non‑LTS)March 1, 2018September 1, 2018Not AvailableIndefinite
Java 11 (18.9^ LTS)September 1, 2018September 1, 2023September 1, 2026Indefinite
Java 12 (19.3^ non‑LTS)March 1, 2019September 1, 2019Not AvailableIndefinite

TCK Compliance

All JDK versions are fully TCK compliant.

Free / Commercial basis

If you want to use Oracle JDK you have to pay for a license. The number of licenses depends on the number of individuals registered as a Named User Plus for a Desktop Subscription or Processors.

Named User Plus is defined as an individual authorized by you to use the programs which are installed on a single server or multiple servers regardless of whether the individual is actively using the programs at any given time.

Processor is defined as all processors where the Oracle programs are installed and/or running. The number of required licenses shall be determined by multiplying the total number of cores of the processor by a core processor licensing factor specified on the Oracle Processor Core Factor Table.

According to the new policy you have to make constant calculations of the number of CPUs, users, cores, etc. in production systems which can get pretty complicated..

Support of additional features & tools

  • Contains JavaFX in JDK 8. Oracle is removing JavaFX from the Java Development Kit (JDK) 11, given an overall desire to pull out noncore modules from the JDK and retire them or stand them up as independent modules
  • Supports AWT+Swing in JDK 8 and JDK 11
  • IntelliJ IDEA works properly with all OpenJDK and AdoptOpenJDK builds
  • Supports Java Flight Recorder (JFR) and Java Mission Control (JMC)
  • Supports install4j
  • Oracle has removed Web Start from Java as a default build

Red Hat JDK

Red Hat OpenJDK 8 (Open Java Development Kit) is a free and open source implementation of the Java Platform, Standard Edition (Java SE).

Red Hat was acquired by IBM in 2018 what provided them with a greater level of scale, resources, and capabilities.

LTS options

Major LTS OpenJDK versions (7, 8,  and 11) on RHEL are fully supported by Red Hat and Red Hat is committed to providing code-level patches for bug fixes. Major versions are supported for at least 6 years. For instance, OpenJDK 1.8 is supported until June 2023.

 RHEL 5 Support AddedRHEL 6 Support AddedRHEL 7 Support AddedEnd of Support for OpenJDK version
OpenJDK 6 (1.6)5.367December 1, 2016
OpenJDK 7 (1.7)5.96.37June 1, 2020
OpenJDK 8 (1.8)N/A6.67.1June 1, 2023
OpenJDK 11N/AN/A7.6October 1, 2024

TCK Compliance

RedHat JDK is fully TCK compliant.

Free / Commercial basis

The OpenJDK build is free to use within a Red Hat Enterprise Linux (RHEL).

If you want to use RHEL you should pay for the license:

  • Self-support subscription – 349 USD / year per server
  • Standard subscription  – 799 USD / year per server
  • Premium subscription  – 1,299 USD / year per server

Support of additional features & tools

  • IntelliJ IDEA work properly with all OpenJDK and AdoptOpenJDK builds
  • Supports Java Flight Recorder (JFR) and Java Mission Control (JMC)
  • Supports install4j
  • Does not support JavaFX (you will need to install OpenJFX on RH JDK)

Azul Zulu

Azul offers community versions of Zulu, Azul’s certified builds of OpenJDK, for all releases of Java SE.  Azul makes no assurances as to the availability or support lifecycle for the community versions of Zulu. The Zulu community builds may be downloaded for enterprise use, and for embedded use.

LTS options

The table below details the class of support lifecycle for each existing and planned JDK release for Azul’s products.

ReleaseGA DateEnd of Oracle Public UpdatesAzul Zulu EnterpriseAzul Zulu Embedded
Java 8March 1, 2014January 1, 2019March 1, 2026March 1, 2026
Java 9 (non-LTS)September 1, 2017March 1, 2018March 1, 2020Community Only
Java 10 (18.3^)(non‑LTS)March 1, 2018September 1, 2018Community OnlyCommunity Only
Java 11 (18.9^ LTS)September 1, 2018March 1, 2019September 1, 2027September 1, 2027
Java 12 (19.3^ non‑LTS)March 1, 2019September 1, 2019Community OnlyCommunity Only

TCK Compliance

Azul Zulu is fully tested and certified. Zulu is compliant with Java SE specifications, and has an identical level of performance to the Oracle offering, making it an easy “drop-in” replacement for Oracle HotSpot.

Free / Commercial basis

A Zulu Enterprise license is priced on a subscription basis based upon the number of Supported Systems (desktops and/or virtual or physical servers) running Java applications.

Max # of Supported SystemsPrice/Year (Standard Support)Price/Year (Premium Support)
2513200Not available
1003160037900
100094900113900
Unlimited284600341500

Support of additional features & tools

  • IntelliJ IDEA works properly with all OpenJDK and AdoptOpenJDK builds.
  • Supports install4j
  • Fully supported Java for Docker
  • Does not support Java Flight Recorder (JFR) and Java Mission Control (JMC)
  • Does not support JavaFX (you need to install OpenJFX on Azul Zulu)

Oracle OpenJDK

Vanilla version JDK which is supported by Oracle engineers and the community. They usually get the newest features first.

LTS options

No LTS, there is a 6-month support cycle for each version, then you have to update JDK if you want to use a supported version of Java. It can cause security risks due to constant updates and unstable GDK.

TCK Compliance

Azul Zulu is fully TCK compliant.

Free / Commercial basis

Oracle OpenJDK is free to use in all environments including production.

Support of additional features & tools

  • IntelliJ IDEA works properly with all OpenJDK and AdoptOpenJDK builds
  • Supports Java Flight Recorder (JFR) and Java Mission Control (JMC) in OpenJDK 11+
  • Supports install4j
  • Does not support JavaFX in JDK 8 (JavaFX is still being developed in OpenJFX, which is a project under the OpenJDK community umbrella)

Amazon Corretto

Amazon Corretto is a no-cost, multiplatform, production-ready distribution of the Open Java Development Kit (OpenJDK).

Amazon says that Corretto is already Production Ready, it can be downloaded from Amazon website, but for now it is still in Preview mode. General Availability is planned for Q1 2019, and will also include Ubuntu and Red Hat Enterprise Linux platforms. Corretto 11 builds corresponding to Open JDK 11 on these platforms will follow with ample time for testing before April 2019.

LTS options

Amazon is going distribute security updates to Corretto 8 at no cost until at least June 2023, and to Corretto 11 until at least August 2024. Still, we can’t find any official and published LTS plans.

TCK Compliance

Amazon Corretto is fully TCK compliant. It is certified to meet the Java SE standard and can be used as a drop-in replacement for many Java SE distributions.

Free / Commercial basis

Amazon Corretto is available for download and use at no cost. There are no additional paid features or restrictions.

Support of additional features & tools

  • Corretto contains JavaFX and can, therefore, be used to easily start a JavaFX based application
  • IntelliJ IDEA works properly with all OpenJDK and AdoptOpenJDK builds
  • Supports Java Flight Recorder (JFR) and Java Mission Control (JMC) because Coretto is based on OpenJDK 11+
  • No webstart functionality

Adopt OpenJDK

Adopt OpenJDK is a popular OpenJDK build supported by the community and sponsors.

LTS options

Adopt OpenJDK will produce LTS releases for at least four years.

ReleaseGA DateEnd of Availability
Java 8 (LTS)March 1, 2014At Least September 2023
Java 9September 1, 2017March 1, 2018
Java 10March 1, 2018September 1, 2018
Java 11 (LTS)September 1, 2018At Least September 2022

TCK Compliance

Note that Adopt OpenJDK is the only JDK build from the list which has not passed TCK.

At this stage, they have not been able to reach an agreement with Oracle to use the Java SE Technology Compatibility Kit (TCK) under the terms of the OpenJDK Community TCK License Agreement (OCTLA).

Free / Commercial basis

Adopt OpenJDK is free to use in all environments including production.

Support of additional features & tools

  • IntelliJ IDEA works properly with all OpenJDK and AdoptOpenJDK builds
  • Does not support Java Flight Recorder (JFR) and Java Mission Control (JMC)
  • Does not support JavaFX
  • No webstart functionality

Comparison Table

CriteriaOracle JDKRed Hat OpenJDKAzul ZuluOracle OpenJDKAmazon CorettoAdoptOpenJDK
Long-term support (LTS) options+ Java 8 till March 2022 (Premier support) and March 2025 (Extended support)+ LTS of Red Hat OpenJDK 8 till June 2023+ Java 8 support till March 2026- No LTS+ Java 8 support till June 2023+ Java 8 support till September 2023
+ Java 11 till September 2023 (Premier support) and September 2026 (Extended support)+ LTS of Red Hat OpenJDK 11 till October 2024+ Java 11 support till September 2027 - 6-months support cycle of each version, then you have to update JDK if you want to use a supported version of Java+ Java 11 support till August 2024+ Java 11 support till September 2022
TCK Compliance+ Compliant+ Compliant+ Compliant+ Compliant+ Compliant- Non compliant
Free / Commercial basisNeed to purchase licenses.JDK is free.Need to purchase subscription packages based on the number of supported systemsJDK is freeJDK is freeJDK is free
Number of licenses is based on the number of processors, cores and users using Java.Need to purchase per-server licenses on RHEL.
Support of additional features & tools (Web-start, IntelliJ IDEA, Java FX, etc.)+ Contains JavaFX in JDK 8 (but Oracle is removing JavaFX from the Java Development Kit (JDK) 11)+ IntelliJ IDEA works properly with all OpenJDK and AdoptOpenJDK builds+ IntelliJ IDEA works properly with all OpenJDK and AdoptOpenJDK buildsIntelliJ IDEA works properly with all OpenJDK and AdoptOpenJDK builds+ Corretto contains JavaFX and can, therefore, be used to easily start a JavaFX based application+ IntelliJ IDEA works properly with all OpenJDK and AdoptOpenJDK builds
+ IntelliJ IDEA works properly with all OpenJDK and AdoptOpenJDK builds+ Supports Java Flight Recorder (JFR) and Java Mission Control (JMC)+ Supports install4jSupports Java Flight Recorder (JFR) and Java Mission Control (JMC) in OpenJDK 11++ IntelliJ IDEA works properly with all OpenJDK and AdoptOpenJDK builds+ Does not support Java Flight Recorder (JFR) and Java Mission Control (JMC)
+ Supports Java Flight Recorder (JFR) and Java Mission Control (JMC)+ Supports install4j+ Fully supported Java for DockerSupports install4j+ Supports Java Flight Recorder (JFR) and Java Mission Control (JMC) because Coretto is based on OpenJDK 11+- Does not support JavaFX
+ Supports install4j- Does not support JavaFX (you need to install OpenJFX on RH JDK)- Does not support Java Flight Recorder (JFR) and Java Mission Control (JMC)Does not support JavaFX in JDK 8 (JavaFX is still being developed in OpenJFX, which is a project under the OpenJDK community umbrella)- No webstart functionality- No webstart functionality
- Oracle has removed Web Start from Java from a default build- Does not support JavaFX (you need to install OpenJFX on Azul Zulu)
Supported platformsSupports Windows x32 & x64 and macOS x64Supports Windows x32 & x64 and macOS x64Supports Windows x32 & x64 and macOS x64Supports Windows x32 & x64 and macOS x64Supports Windows x32 & x64 and macOS x64Supports Windows x32 & x64 and macOS x64
Backed by a large corporation+ Oracle+ Red Hat & IBM    +- Azul- Community+ Amazon- Community

Conclusion

Oracle JDK 8 will no longer receive public updates from January 2019. It is not late too change your JDK. If you want to receive updates to Java 8, you may need to pay Oracle or find another JDK build.

  • LTS options:
    • Oracle has changed their LTS policy for Java 8, 9, 10 and 11
    • If you are using Oracle Java 9 or 10 you should change your JDK vendor, because Oracle will no longer support these versions even on a commercial basis
    • Other vendors may offer support for Java 9, Java 10 and extended support for Java 8
  • TCK:
    • It was not a problem when you were using original Oracle JDK. But don’t worry – most of the alternative JDK builds are TCK compliant. While it is still a must-have criterion for choosing a JDK build for production.
  • Prices:
    • Oracle prices for JDK in production are pretty high
    • You can still use Oracle JDK for free in development and testing environments
    • Other vendors may offer lower prices and calculation models better suited to your systems
    • Other vendors may have free subscriptions with limited functionality
  • Support of additional features & tools:
    • All JDK builds have different supported tools and features. Check if the required feature is included in a default package or can be installed with a plugin
  • Supported platforms:
    • All JDK builds supports Windows x32 & x64 and macOS x64