Oracle JDK vs. OpenJDK builds comparison
Tags: jdk, openjdk, oracle, redhat
Published: 2019-02-08 15:10:59

---
title: Oracle JDK vs. OpenJDK builds comparison
published: true
tags: JDK,openJDK,Oracle,Red Hat
canonical_url: https://blog.devexperts.com/oracle-jdk-vs-openjdk-builds-comparison/
---

![](https://blog.devexperts.com/wp-content/uploads/2019/02/picturemessage_akzcwuvn.0hd-1024x430.png)

# 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](http://www.oracle.com/us/corporate/pricing/price-lists/java-se-subscription-pricelist-5028356.pdf).

<table id="tablepress-2" class="tablepress tablepress-id-2">
<thead>
<tr class="row-1 odd">
	<th class="column-1">Java SE Platform Products</th><th class="column-2">Monthly Subscription Price</th><th class="column-3">Subscription Metric</th><th class="column-4">Volume</th>
</tr>
</thead>
<tbody class="row-hover">
<tr class="row-2 even">
	<td rowspan="5" class="column-1">Java SE Desktop Subscription</td><td class="column-2">2,5</td><td class="column-3">Named User Plus</td><td class="column-4">1 - 999</td>
</tr>
<tr class="row-3 odd">
	<td class="column-2">2,0</td><td class="column-3">Named User Plus</td><td class="column-4">3,000 - 9,999</td>
</tr>
<tr class="row-4 even">
	<td class="column-2">1,75</td><td class="column-3">Named User Plus</td><td class="column-4">10,000 - 19,999</td>
</tr>
<tr class="row-5 odd">
	<td class="column-2">1,5</td><td class="column-3">Named User Plus</td><td class="column-4">20,000 - 49,999</td>
</tr>
<tr class="row-6 even">
	<td class="column-2">1,25</td><td class="column-3">Contact for Details</td><td class="column-4">50,000+</td>
</tr>
<tr class="row-7 odd">
	<td rowspan="8" class="column-1">Java SE Subscription</td><td class="column-2">250000</td><td class="column-3">Processor</td><td class="column-4">January 1, 1999</td>
</tr>
<tr class="row-8 even">
	<td class="column-2">237500</td><td class="column-3">Processor</td><td class="column-4">100 - 249</td>
</tr>
<tr class="row-9 odd">
	<td class="column-2">225000</td><td class="column-3">Processor</td><td class="column-4">250 - 499</td>
</tr>
<tr class="row-10 even">
	<td class="column-2">200000</td><td class="column-3">Processor</td><td class="column-4">500 - 999</td>
</tr>
<tr class="row-11 odd">
	<td class="column-2">175000</td><td class="column-3">Processor</td><td class="column-4">1,000 - 2,999</td>
</tr>
<tr class="row-12 even">
	<td class="column-2">150000</td><td class="column-3">Processor</td><td class="column-4">3,000 - 9,999</td>
</tr>
<tr class="row-13 odd">
	<td class="column-2">12500</td><td class="column-3">Processor</td><td class="column-4">10,000 - 19,999</td>
</tr>
<tr class="row-14 even">
	<td class="column-2">-</td><td class="column-3">Contact for details</td><td class="column-4">20,000+</td>
</tr>
</tbody>
</table>

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](http://openjdk.java.net/projects/jdk/).

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](https://www.jcp.org/en/home/index), 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 |

<!-- #tablepress-3 from cache -->
### 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](http://www.oracle.com/us/corporate/contracts/processor-core-factor-table-070634.pdf).

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 |

<!-- #tablepress-4 from cache -->
### 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 |

<!-- #tablepress-5 from cache -->
### 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 |

<!-- #tablepress-6 from cache -->
### 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 |

<!-- #tablepress-7 from cache -->
### 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 |

<!-- #tablepress-8 from cache -->
# 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