Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK
Oracle JDK SE Public Updates
Oracle JDK SE Support Roadmap (LTS options)
Oracle JDK licenses
Oracle JDK vs Oracle OpenJDK
Java SE Release Roadmap
The OpenJDK build is free to use within a Red Hat Enterprise Linux (RHEL)
The Red Hat OpenJDK Features
3. Comparison Table
Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK
Criteria Oracle JDK Oracle OpenJDK Red Hat OpenJDK
Long-term
support (LTS)
options
Java 8 till March 2022 (Premier
support) and March 2025
(Extended support)
No LTS LTS of Red Hat OpenJDK 8
till June 2023
Java 11 till September 2023
(Premier support) and September
2026 (Extended support)
6-months support cycle of
each version, then you have
to update JDK if you want to
use a supported version of
Java
LTS of Red Hat OpenJDK
11 till October 2024
TCK
Compliance
Compliant Compliant Compliant
Free /
Commercial
basis
Need to purchase licenses.
Number of licenses is based on
the number of processors, cores
and users using Java.
JDK is free
GNU General Public License
v2, with the Classpath
Exception
(GPLv2+CPE)
Need to purchase per-server
licenses on
RHEL/Middleware/Runtimes.
Support Oracle Community Red Hat & IBM
300 Core USD 40.500 per Year free Red Hat Runtime 222,398
per Year
5 October 20193
6. Oracle JDK
Oracle JDK licenses
5 October 20196
For 300 physical core = USD
40.500 per Year Subscription
Java SE Platform
Products
Monthly Subscription
Price USD
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 25,00 Processor 1 - 99
23,75 Processor 100 - 249
22,50 Processor 250 - 499
20,00 Processor 500 - 999
17,50 Processor 1,000 - 2,999
15,00 Processor 3,000 - 9,999
12,50 Processor 10,000 - 19,999
- Contact for details 20,000+
7. Oracle JDK vs Oracle OpenJDK
• As announced in September 2017, with the OracleJDK and builds of Oracle
OpenJDK being interchangeable for releases of Java SE 11 and later,
• Oracle JDK will primarily be for commercial and support customers
• OpenJDK builds from Oracle are for those who do not want commercial support
or enterprise management tools
5 October 20197
8. Oracle JDK 11 vs Oracle OpenJDK 11
Both are functionally identical aside from some cosmetic and packaging differences,
described in detail below.
5 October 20198
Criteria Oracle JDK 11 Oracle OpenJDK 11
Modules 1. Resource Management API
(jdk.management.resource)
2. Simple Network Management Protocol API
(jdk.snmp)
3. Cooperative Memory Management
(jdk.management.cmm)
4. Flight Recorder (jdk.jfr, jdk.management.jfr)
5. The Java Packager Tool
(jdk.packager.services)
6. JavaFX (javafx.media, javafx.web,
javafx.base, javafx.controls, javafx.fxml,
javafx.graphics)
java --version java 11 2018-09-25
Java(TM) SE Runtime Environment 18.9 (build
11+28)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build
11+28, mixed mode)
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9
(build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build
11+28, mixed mode)
Cryptographic
Providers
always required third party cryptographic
providers to be signed by a known certificate
open cryptographic interface, meaning it
does not restrict which providers can be
used (a valid signature or unsigned )
Distribution format continue to include installers, branding and JRE
packaging for an experience consistent with
legacy desktop uses
zip and tar.gz files, while
alternative distribution formats are being
considered.
9. Java SE Release Roadmap
Oracle JDK LTS and Oracle Open JDK
5 October 20199
10. Red Hat JDK
The OpenJDK build is free to use within a Red Hat Enterprise Linux (RHEL)
5 October 201910
11. Red Hat JDK
The Red Hat OpenJDK Features
5 October 201911
1. Serviceability: OpenJDK 8 does not contain Mission Control. Red Hat is distributing Mission Control for OpenJDK
11, and is working on supporting OpenJDK 8 with Mission Control.
2. Font: The font library is different. This means slightly different text layout in some cases.
3. CMS: Same for the colour management system. OpenJDK uses the same solutions as the rest of RHEL
(FreeType & LCMS) while the proprietary JDK has established existing code that it has used for many years.
4. OpenJDK use the RHEL system NSS crypto library, not the JDK's built-in one. This mostly affects elliptic curve
cryptography, where OpenJDK supports all of the RHEL curves and none of the others.
5. 2D library: OpenJDK has its own 2D library, different from the proprietary JDK. This means that its performance is
different.
6. Application Class Data Sharing is part of OpenJDK since OpenJDK 10. This feature reduces memory footprint by
sharing class metadata.
7. OpenJDK doesn't support the Resource Management API for Java.
8. OpenJDK doesn't support the Simple Network Management Protocol API.
9. OpenJDK has its own browser plugin and Java Web Start application (icedtea-web package). We wrote this
independently of Oracle. Icedtea-web is currently supported on RHEL with OpenJDK 7 and 8 and adding Web
Start support through it for Windows with OpenJDK 8 is in progress.
10.OpenJDK doesn't support Cooperative Memory Management. This allows the user to tune the G1 garbage
collector depending on a compromise between memory usage and performance.
11.OpenJDK supports system-tap.
12.OpenJDK is provided with full-debug clone-build (-debug- subpackages).
13.OpenJDK comes with javadocs. Both zipped and uncompressed.
14.OpenJDK is delivered with full sources.
15.OpenJDK uses system tzdata and system certificates (Oracle has these bundle).
16.OpenJDK 8 and 11 from Red Hat fully support Shenandoah, an low pausetime Garbage Collector for large heaps.
Java SE Technology Compatibility Kit (TCK) under the terms of the OpenJDK Community TCK License Agreement (OCTLA).
OpenJDK and Oracle JDK are implementations of the same Java SE specification. In 2017, Oracle committed to open sourcing the remaining Java SE tools with the goal of making Oracle JDK and OpenJDK interchangeable. While some minor differences still exist, OpenJDK 11 and Oracle JDK 11 are now functionally interchangeable. The builds are nearly identical except for a few features (e.g., Advanced Management Console) that are shipped separately via the Java SE Advanced commercial offering.
Java SE Technology Compatibility Kit (TCK) under the terms of the OpenJDK Community TCK License Agreement (OCTLA).
Java SE Technology Compatibility Kit (TCK) under the terms of the OpenJDK Community TCK License Agreement (OCTLA).
Java SE Technology Compatibility Kit (TCK) under the terms of the OpenJDK Community TCK License Agreement (OCTLA).
Resolution
Following is a basic list and not specific to any java version.
Serviceability: OpenJDK 8 does not contain Mission Control. Red Hat is distributing Mission Control for OpenJDK 11, and is working on supporting OpenJDK 8 with Mission Control.
Font: The font library is different. This means slightly different text layout in some cases.
CMS: Same for the colour management system. OpenJDK uses the same solutions as the rest of RHEL (FreeType & LCMS) while the proprietary JDK has established existing code that it has used for many years.
OpenJDK use the RHEL system NSS crypto library, not the JDK's built-in one. This mostly affects elliptic curve cryptography, where OpenJDK supports all of the RHEL curves and none of the others.
2D library: OpenJDK has its own 2D library, different from the proprietary JDK. This means that its performance is different.
Application Class Data Sharing is part of OpenJDK since OpenJDK 10. This feature reduces memory footprint by sharing class metadata.
OpenJDK doesn't support the Resource Management API for Java.
OpenJDK doesn't support the Simple Network Management Protocol API.
OpenJDK has its own browser plugin and Java Web Start application (icedtea-web package). We wrote this independently of Oracle. Icedtea-web is currently supported on RHEL with OpenJDK 7 and 8 and adding Web Start support through it for Windows with OpenJDK 8 is in progress.
OpenJDK doesn't support Cooperative Memory Management. This allows the user to tune the G1 garbage collector depending on a compromise between memory usage and performance.
OpenJDK supports system-tap.
OpenJDK is provided with full-debug clone-build (-debug- subpackages).
OpenJDK comes with javadocs. Both zipped and uncompressed.
OpenJDK is delivered with full sources.
OpenJDK uses system tzdata and system certificates (Oracle has these bundle).
OpenJDK 8 and 11 from Red Hat fully support Shenandoah, an low pausetime Garbage Collector for large heaps.
Oracle JDK contained some additional modules that were not part of corresponding OpenJDK releases:
Resource Management API (jdk.management.resource)
Simple Network Management Protocol API (jdk.snmp)
Cooperative Memory Management (jdk.management.cmm)
Flight Recorder (jdk.jfr, jdk.management.jfr)
The Java Packager Tool (jdk.packager.services)
JavaFX (javafx.media, javafx.web, javafx.base, javafx.controls, javafx.fxml, javafx.graphics)
The output of the java --version and java –fullversion commands will distinguish Oracle JDK builds from OpenJDK builds
java --version with an Oracle JDK 11 build results in:
java 11 2018-09-25
Java(TM) SE Runtime Environment 18.9 (build 11+28)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11+28, mixed mode)
java --version with an Oracle Open JDK 11 build results in:
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
The Oracle JDK:
It has always required third party cryptographic providers to be signed by a known certificate.
It will continue to require a valid signature.
The OpenJDK:
The cryptography framework in OpenJDK has an open cryptographic interface, meaning it does notrestrict which providers can be used.
It builds will continue to allow the use of either a valid signature or unsigned third party crypto provider.
• Oracle JDK 11 will continue to include installers, branding and JRE
packaging for an experience consistent with legacy desktop uses. Oracle
OpenJDK builds are currently available as zip and tar.gz files, while
alternative distribution formats are being considered.
Java SE Technology Compatibility Kit (TCK) under the terms of the OpenJDK Community TCK License Agreement (OCTLA).
Java SE Technology Compatibility Kit (TCK) under the terms of the OpenJDK Community TCK License Agreement (OCTLA).
Resolution
Following is a basic list and not specific to any java version.
Serviceability: OpenJDK 8 does not contain Mission Control. Red Hat is distributing Mission Control for OpenJDK 11, and is working on supporting OpenJDK 8 with Mission Control.
Font: The font library is different. This means slightly different text layout in some cases.
CMS: Same for the colour management system. OpenJDK uses the same solutions as the rest of RHEL (FreeType & LCMS) while the proprietary JDK has established existing code that it has used for many years.
OpenJDK use the RHEL system NSS crypto library, not the JDK's built-in one. This mostly affects elliptic curve cryptography, where OpenJDK supports all of the RHEL curves and none of the others.
2D library: OpenJDK has its own 2D library, different from the proprietary JDK. This means that its performance is different.
Application Class Data Sharing is part of OpenJDK since OpenJDK 10. This feature reduces memory footprint by sharing class metadata.
OpenJDK doesn't support the Resource Management API for Java.
OpenJDK doesn't support the Simple Network Management Protocol API.
OpenJDK has its own browser plugin and Java Web Start application (icedtea-web package). We wrote this independently of Oracle. Icedtea-web is currently supported on RHEL with OpenJDK 7 and 8 and adding Web Start support through it for Windows with OpenJDK 8 is in progress.
OpenJDK doesn't support Cooperative Memory Management. This allows the user to tune the G1 garbage collector depending on a compromise between memory usage and performance.
OpenJDK supports system-tap.
OpenJDK is provided with full-debug clone-build (-debug- subpackages).
OpenJDK comes with javadocs. Both zipped and uncompressed.
OpenJDK is delivered with full sources.
OpenJDK uses system tzdata and system certificates (Oracle has these bundle).
OpenJDK 8 and 11 from Red Hat fully support Shenandoah, an low pausetime Garbage Collector for large heaps.