DEV Community

Devexperts
Devexperts

Posted on • Originally published at blog.devexperts.com on

Oracle JDK vs. OpenJDK builds comparison

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 Products Monthly Subscription Price Subscription Metric Volume
Java SE Desktop Subscription 2,5 Named User Plus 1 - 999
2,0 Named User Plus 3,000 - 9,999
1,75 Named User Plus 10,000 - 19,999
1,5 Named User Plus 20,000 - 49,999
1,25 Contact for Details 50,000+
Java SE Subscription 250000 Processor January 1, 1999
237500 Processor 100 - 249
225000 Processor 250 - 499
200000 Processor 500 - 999
175000 Processor 1,000 - 2,999
150000 Processor 3,000 - 9,999
12500 Processor 10,000 - 19,999
- Contact for details 20,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).

Release GA Date Premier Support Until Extended Support Until Sustaining Support
Java 8 March 1, 2014 March 1, 2022 March 1, 2025 Indefinite
Java 9 (non-LTS) September 1, 2017 March 1, 2018 Not Available Indefinite
Java 10 (18.3^)(non‑LTS) March 1, 2018 September 1, 2018 Not Available Indefinite
Java 11 (18.9^ LTS) September 1, 2018 September 1, 2023 September 1, 2026 Indefinite
Java 12 (19.3^ non‑LTS) March 1, 2019 September 1, 2019 Not Available Indefinite

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 Added RHEL 6 Support Added RHEL 7 Support Added End of Support for OpenJDK version
OpenJDK 6 (1.6) 5.3 6 7 December 1, 2016
OpenJDK 7 (1.7) 5.9 6.3 7 June 1, 2020
OpenJDK 8 (1.8) N/A 6.6 7.1 June 1, 2023
OpenJDK 11 N/A N/A 7.6 October 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.

Release GA Date End of Oracle Public Updates Azul Zulu Enterprise Azul Zulu Embedded
Java 8 March 1, 2014 January 1, 2019 March 1, 2026 March 1, 2026
Java 9 (non-LTS) September 1, 2017 March 1, 2018 March 1, 2020 Community Only
Java 10 (18.3^)(non‑LTS) March 1, 2018 September 1, 2018 Community Only Community Only
Java 11 (18.9^ LTS) September 1, 2018 March 1, 2019 September 1, 2027 September 1, 2027
Java 12 (19.3^ non‑LTS) March 1, 2019 September 1, 2019 Community Only Community 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 Systems Price/Year (Standard Support) Price/Year (Premium Support)
25 13200 Not available
100 31600 37900
1000 94900 113900
Unlimited 284600 341500

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.

Release GA Date End of Availability
Java 8 (LTS) March 1, 2014 At Least September 2023
Java 9 September 1, 2017 March 1, 2018
Java 10 March 1, 2018 September 1, 2018
Java 11 (LTS) September 1, 2018 At 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

Criteria Oracle JDK Red Hat OpenJDK Azul Zulu Oracle OpenJDK Amazon Coretto AdoptOpenJDK
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 basis Need to purchase licenses. JDK is free. Need to purchase subscription packages based on the number of supported systems JDK is free JDK is free JDK 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 builds IntelliJ 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 install4j Supports 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 Docker Supports 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 platforms Supports Windows x32 & x64 and macOS x64 Supports Windows x32 & x64 and macOS x64 Supports Windows x32 & x64 and macOS x64 Supports Windows x32 & x64 and macOS x64 Supports Windows x32 & x64 and macOS x64 Supports 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

Top comments (0)