So it finally happened, Oracle wants to cash in on it’s $7.4 Billion investment it made in 2009. The non-Open-Source non-GPL non-Free-Software-coffee has officially gone sour.
One can just pray, that this will be a lesson to every developer to never again spend years and years of learning and training and development with a non-Open-Source, non-GPL and non-Free-programming languages, ever again.
also: while Java is a nice language (the write once run anywhere is nice), Java programs are a bloat, very inefficient hungry in RAM.
Java “the write once, run anywhere” language was invented created by James Gosling at Sun Microsystems in 1995 (Oracle acquire Sun for US$7.4 billion in 2009) Oracle finally wants to cash in on it’s long-term investment.
“If you want to be a Commercial User, then buy a commercial Java from someone, such as Oracle, or Red Hat or others.”
“If you don’t want to use a Commercial version of Java, then use the open source Open JDK. The commercial versions of Java are based on Open JDK. Here are some places where you can get compiled binary builds of Open JDK. (Or you can built it from source yourself.)”
Amazon Corretto 11 is a no-cost, multi-platform, production-ready distribution of OpenJDK 11
so what does this mean for all those Java projects?
licence is catastrophically complex & may change with every version
“H. COMMERCIAL FEATURES NOTICE.”
“For purpose of complying with Supplemental Term Section C.(v)(b) and D.(v)(b), your license agreement shall include the following notice, where the notice is displayed in a manner that anyone using the Software will see the notice:”
“Use of the Commercial Features for any commercial or production purpose requires a separate license from Oracle. “Commercial Features” means those features that are identified as such in the Licensing Information User Manual – Oracle Java SE and Oracle Java Embedded Products Document, accessible at http://www.oracle.com/java/technologies/java-se-doc.html, under the “Description of Product Editions and Permitted Features” section.”
“Example: A company has 10 servers with the Java Flight Recorder (or JRockit Flight Recorder if using JRockit) enabled, that are being monitored from four workstations.”
“The company needs Oracle Java SE Advanced or Oracle Java SE Suite licenses for the 10 servers, but not for the four client workstations.”
“Example: A company is using a third-party JMX tool to monitor their application. They only access MBeans in the javax.management package and their own custom MBeans. No Oracle Java SE Advanced or Oracle Java SE Suite license is required.”
so how much (PER MONTH) is Java SE?
great model Oracle.
Only a few bucks per month.
If this multiplied by 3 Billion…
devices3.000.000.000*$2.5 = makes a lofty monthly subscribtion income of $7.500.000.000 ($7.5 Billion)
So Oracle should have “return on the Sun Microsystem 2009 investment” in 1 month, 3 months at latest.
long story: “Does the license agreement change for each release?”
“Sometimes. The license might change from release to release. The general license grants have remained fairly constant, but the terms may change between releases without notice. It is best to review the terms of each release’s license prior to use.”
the Java ain’t GPL-OpenSource, but “Java Is Still ‘Free'” document:
With the changes to Oracle JDK distribution and support, there has been considerable uncertainty over the rights to use Oracle JDK vs. Oracle OpenJDK builds vs. OpenJDK builds from other providers. There are various ways to get free updates (including security) and (new and existing) paid support models available from multiple vendors to consider. This document has a Shorter Version and a much Longer Version section with all of the details.
|Want to Comment?|
You can still get the Oracle OpenJDK builds and OpenJDK by other providers for free under an open-source license, and the Oracle JDK remains free in some circumstances. See the callout and the rest of the section for the nuances on this.
|Java SE / OpenJDK / Oracle OpenJDK Builds / Oracle JDK
The OpenJDK community creates and maintains the (GPLv2+CE) open-source Reference Implementation (RI) of the Java SE Specification as governed by the Java Community Process (JCP) and defined through an umbrella Java Specification Request (JSR) for each feature release.
There are implementations (mostly OpenJDK based) of Java SE from various providers such as Eclipse Adoptium/AdoptOpenJDK, Amazon, Azul, BellSoft, IBM, Red Hat, Oracle, SAP, and others.
Oracle JDK 8 is going through the “End of Public Updates” process, which means the April 2019 update will restrict commercial use. However, since Java SE 9, Oracle provides Oracle OpenJDK free for commercial use (but only updated for six months). There are also free OpenJDK builds updated (including security patches) from the other providers mentioned above.
There are several options to get a JDK. We focus on Java SE 8 and Java SE 11, the first Long Term Support (LTS) release under the new release cadence.
Staying with Java SE 8
Some people want to continue using Java SE 8 for various reasons.
- Starting with the April 2019 update, Oracle JDK 8 will have commercial use restrictions. Until at least December 2020, the Oracle JDK will remain free for personal desktop use, development, testing, prototyping, demonstrating, and using certain types of applications. After those dates, users can either go onto a paid support plan or use a Java SE 8 / OpenJDK 8 binary from another provider.
- You can also continue to use previous releases of Oracle JDK 8 downloaded under old licenses without updates at your own risk.
- If you are not using Oracle JDK 8, then your current Java SE 8 / OpenJDK 8 provider will offer updates or paid support plans (with updates).
|I WANT $FREE AND FREE (AS IN USE) JAVA SE 8; WHAT DO I CHOOSE?
If you want free updates (including security) of Java SE 8, use an OpenJDK binary distribution from an OpenJDK provider, i.e., Linux distros, Eclipse Adoptium / AdoptOpenJDKAmazon, Azul, BellSoft, IBM, Red Hat, SAP, and others.
Getting Java SE 11 (LTS)
You can choose from several options. Please read them carefully, especially how Oracle JDK manages releases and updates from Java SE 11 onwards.
- Starting with Java SE 11, Oracle provides their (OpenJDK based) JDK via:
- Oracle OpenJDK builds – Under the existing GPLv2+CE license, and
- Oracle JDK – Under a paid commercial license (but free for individual use, development, testing, prototyping, and demonstrating and with certain types of applications), those who do not wish to use the GPLv2+CE, or who are using an Oracle JDK with an Oracle product or service.
NOTE: Oracle provides two quarterly updates for its Oracle OpenJDK builds and then transitions users to the next version every six months (this includes LTS).
- You can also get Java SE / OpenJDK binary distributions from a variety of other providers. These providers give you updates (including security) for a length of time, depending on whether it’s an LTS version or not.
|I WANT $FREE AND FREE (AS IN USE) JAVA SE 11+, WHAT DO I CHOOSE?
Oracle plans to provide full paid support for Oracle JDK 8 until at least 2025 and Oracle JDK 11 until at least 2026 (details). There is a wide range of paid support options for Java SE / OpenJDK 8 and 11 binaries from Azul, BellSoft, IBM, Red Hat, and others.
This page is left blank to separate the Shorter Version from the Longer Version.
The Longer Version
This section deliberately has a lot of details as there are nuances. Please do yourself and your colleagues a favor by setting aside some proper time to read this in full. You’ll thank yourself for it, seriously.
We’d also like to thank Simon Ritter, Stephen Colebourne, Hendrik Ebbers, Donald Smith, Jonas Konrad, and many others for their earlier posts and permission to reuse their material. Appendix I – Signatories, Thanks, and References give a complete list of accreditation and signatories to this document.
Feedback is welcome! Use this link where you can make suggested edits and comments.
We will update this document for new information or a verified correction. Please check back here for updates and follow our @Java_Champions Twitter handle.
|1.0.0||17 Sept 2018 1000 UTC||Initial Public Release|
|1.0.1||29 Nov 2018 1951 UTC||Grammarly fixes|
|2.0.0||01 Mar 2019 2127 UTC||Updates to reflect the current ecosystem|
|2.0.1||06 Mar 2019 0955 UTC||Minor updates to Liberica|
|2.0.2||09 Mar 2019 1439 UTC||Minor updates to Red Hat OpenJDK|
|2.0.3||27 Mar 2019 0906 UTC||Make security updates clear|
|2.0.4||11 June 2019 1141 UTC||Minor update to Azul entry|
|2.0.5||24 June 2020 2226 UTC||Eclipse Adoptium and Microsoft additions and jClarity removal|
|2.0.6||29 January 2021 1433 UTC||Clarification of Adoptium vs. AdoptOpenJDK and 17 (LTS).|
|2.1.0||15 Mar 2021 1439 UTC||Grammarly Professional pass|
|2.1.1||18 Apr 2021 1319 UTC||Added OpenLogic|
The following sheet is tracking the known dissemination of this document. Please update if you share this doc!
Table of Contents
With the recent changes to Oracle JDK distribution and support, there has been considerable uncertainty over Java’s future, lifecycle, and vendor-provided support. This document summarizes the changes Oracle has made and the options available for users of Java SE.
|WHAT DO WE MEAN BY FREE?
In a nutshell, the word “free” has two distinct meanings in software:
As explained in the Shorter Version, you can still get Java SE binaries “free as in beer” from Oracle and other Java SE / OpenJDK providers (but check the update policies).
Although there are proprietary and restricted usage implementations of Java SE out there (Azul Zing, Oracle JDK, etc.), there is always the option of using an OpenJDK for the vast majority of users, which is “free as in speech” as it is GPLv2+CE licensed.
These changes have happened within a short time frame, creating a perfect storm of uncertainty as day-to-day developers don’t follow the industry news closely and get caught up. This compressed time frame led to factually incorrect posts such as:
Which are luckily counterbalanced by more accurate posts such as:
- Donald Smith (Senior Director, Java Platform Product Management – Oracle) – Update and FAQ on the Java SE Release Cadence
- Simon Ritter (Deputy CTO – Azul) – Eliminating Java Update Confusion
- Stephen Colebourne (Joda-Time author) – Java is still available at Zero Cost and Java Options.
- Hendrik Ebbers (Co-founder Karakun) – Do I need to pay for Java now?
This article will cover the main areas of concern and what actions are addressing the ecosystem’s concerns. You’ll be reassured by the end of this post that the community is looking after Java SE and that it has a future more robust than ever!
The New Six Month Release Cadence and LTS
Java SE now has a feature release every six months, using a new versioning scheme previously announced in 2017. Thanks to improvements in JCP processes, OpenJDK committers can now introduce spec-changing features (such as var in Java SE 10) on the six-month cadence.
|WHAT DOES LTS MEAN WITH REGARDS TO JAVA / OPENJDK?
Long Term Support (LTS) in OpenJDK is just an understanding between the various contributors (led by Oracle and Red Hat) that the code line for Java SE 11 / 17 / 23 etc., will be maintained for a more extended period than six months.
Oracle will lead the first six months of an OpenJDK LTS code line, provide updates and produce Oracle OpenJDK builds, and then only offer Oracle JDK updates under a paid support plan.
However, Oracle will work with other OpenJDK vendors to hand over the OpenJDK LTS code line and allow them to continue working on it together to provide updates. Each vendor can then offer updates or paid support (with updates) for the binaries they produce. This handover has occurred for both Java SE 8 and Java SE 11, with Red Hat taking over those update projects.
NOTE: This does mean that, in theory, Oracle JDK could differ from the OpenJDK-based binaries produced by other providers (this has always been the case). However, Red Hat and other project leaders have led the efforts to keep them in sync.
The new versioning scheme (including what LTS means) and the new process for introducing new features impact each version. By maintenance, we mean the provision of update releases with security patches and critical bug fixes.
|UPDATES vs. SUPPORT
Updates refer to the code patches (including security) that have gone into OpenJDK and Oracle JDK. These have typically gone in for free until vendors decide that there’s an End of Public Updates process.
Support means a commitment to fix bugs, and it requires staff to answer users’ problems, which costs money. There has never been free support for Oracle JDK or OpenJDK.
Oracle and other OpenJDK committers provided updates to and including OpenJDK 8 / Oracle JDK 8 within a “feature release”. Each subsequent feature release superseded feature releases, such as 8u91, 8u111, and 8u131 (on a six-month cadence). For example, once 8u111 was released, you would not get updates on 8u91.
Starting with OpenJDK 9 / Oracle JDK 9, the new six-monthly release cycle came into effect. Updates now occur between “feature releases”, i.e., Similar to 8u91 -> 8u111, once 12 is released, you will not get updates to 11 by Oracle (However, other OpenJDK committers, led by Red Hat, will provide these).
Oracle Updates Plan
Until Java 8, Oracle provided updates for the Oracle JDK for a 3+ year lifecycle and permitted usage in personal and commercial settings. The updates provided no support, and support required the purchase of explicit licenses from Oracle. Paid support also entailed longer update cycles.
Starting with Java 9, Oracle moved to a faster cadence for Oracle JDK and started producing Oracle OpenJDK builds. Oracle will provide updates for six months upon the release of the next version. You must purchase support from Oracle if you require updates/support for a longer duration or production use (i.e., You must be on Oracle JDK). Periodically, releases will be marked “LTS”. Oracle will support these releases through their standard support licenses for an extended period. As of right now, the Oracle update plan for Oracle OpenJDK builds, with updates, is as follows:
|Oracle OpenJDK Build Version||Release date||Free updates superseded/ended (by Oracle)|
|8||March 2014||At least through January 2020 (personal desktop use)
Ends January 2019 for commercial use
|9||Sept 2017||Superseded by Oracle OpenJDK build 10|
|10||March 2018||Superseded by Oracle OpenJDK build 11 in Sept 2018|
|11||Sept 2018||To be superseded by Oracle OpenJDK build 12 in March 2019 (extensions to this date may occur).|
|12||March 2019||To be superseded by Oracle OpenJDK build 13|
|13||Sept 2019||To be superseded by Oracle OpenJDK build 14|
|14||To be superseded by Oracle OpenJDK build 15|
|15||To be superseded by Oracle OpenJDK build 16|
|16||To be superseded by Oracle OpenJDK build 17|
The idea here is simple. As has been the Java SE model going way back to the Sun era, Oracle focuses on innovations and moving Java SE forward. Organizations that wish to remain on legacy versions can do so via commercial support offerings. Of course, for some Java SE users and development shops, a rapid upgrade is not feasible.
OpenJDK Updates Plan
The OpenJDK community works on a free, open-source implementation of the Java SE standard. Oracle contributes heavily to the project, and it is the basis for both Oracle OpenJDK builds and Oracle JDK. OpenJDK 11+ is interchangeable with Oracle JDK for applications that adhere to the Java SE standard. Oracle will continue to contribute to OpenJDK while they provide updates for the corresponding Oracle OpenJDK build. When the next version comes out, Oracle will cease contributing to that version and update the next one.
Oracle has been highly receptive to the idea of community maintenance (for OpenJDK 6 and 7) and will continue to support the handover of OpenJDK to the community to a qualified volunteer entity once they have moved on to working on the next version. Red Hat stepped in to globally lead (and provide regular updates to) OpenJDK 6 and OpenJDK 7 projects after Oracle ended updates for them. After Red Hat stopped updating OpenJDK 6, Azul Systems stepped in to lead the project, and they continue to provide updates to this day.
Red Hat is now leading OpenJDK 8 and OpenJDK 11. It is important to note that while Red Hat leads the OpenJDK 7, 8, and 11 projects, they are not the sole contributors! Other vendors provide patches and fixes as well. With OpenJDK 8, there will be more contributions than ever before from non-Red Hat companies, such as Amazon, Azul, BellSoft, Google, IBM, Microsoft, SAP, and many others.
For consistency, OpenJDK will extend the update cycle for the identical versions deemed LTS for Oracle JDK. As of right now, the OpenJDK support cycle is as follows:
NOTE: These times are subject to change, and different providers all have slightly different timeline commitments. Therefore we use the term “At Least”.
|Version||Release date||Free updates superseded/ended (by OpenJDK community members)|
|OpenJDK 6||Supported primarily by Azul systems|
|OpenJDK 7||At least through to June 2020, supported primarily by Red Hat.|
|March 2014||They are supported at least through Sept 2023. Red Hat has led since Jan 2019, supported by Amazon, Azul Systems, BellSoft, Google, IBM, Microsoft, SAP, and others.|
|OpenJDK 9||Sept 2017||Superseded by OpenJDK 10|
|OpenJDK 10||March 2018||Superseded by OpenJDK 11 in Sept 2018|
|OpenJDK 11 (LTS)||Sept 2018||They are supported at least through Sept 2025. Red Hat has led since Feb 2019, supported by Amazon, Azul Systems, BellSoft, Google, IBM, Microsoft, SAP, and others.|
|OpenJDK 12||March 2019||To be superseded by OpenJDK 13|
|Sept 2019||Azul Systems offers Medium-Term Support.|
|OpenJDK 14||To be superseded by OpenJDK 15|
|OpenJDK 15||To be superseded by OpenJDK 16|
|OpenJDK 16||To be superseded by OpenJDK 17|
Java SE / OpenJDK Providers
Many Java SE / OpenJDK providers provide either updates or paid support options (with updates). The following sections provide a lot of details.
|UPDATES vs. SUPPORT
Updates refer to the code patches (including security) that have gone into OpenJDK and Oracle JDK. These have typically gone in for free until vendors decide that there’s an End of Public Updates.
Support means a commitment to fix bugs, and it requires staff to answer users’ problems, which costs money. There has never been free support for Oracle JDK or OpenJDK.
Why Would I Choose Commercial Support?
If you need a fix promptly, someone to respond to your user requests, or if you want the reassurance that a vendor is backing the binary you use, then Azul, BellSoft, IBM, Red Hat, Oracle, et al. all offer choices.
|A PHILOSOPHICAL POINT ON PAYING FOR OPEN SOURCE SOFTWARE
The industry at large has settled firmly on Open Source Software as the way forward. Because of its “Free as in speech” nature, OSS licenses allow folks to modify and adapt other people’s software without fear of punitive action.
Many folks also enjoy the “Free as in beer” nature of much OSS software. But this comes at a high cost to the authors! Software developers, like anyone else, need to put a roof over their heads and food on their table. Vendors like Oracle pour vast amounts of money into Java SE (think 10s of $ Millions per year at the very least), and they do need to somehow pay for that cost.
So although you’re certainly not obliged to go with a paid support option with one of the vendors, sometimes it’s worth thinking about how you, the end-users, can support the Java SE ecosystem to ensure it has a long-lasting future!
Build yourself from Source
Build from Source [OpenJDK, no commercial support, need to self-build]:
- GitHub: https://github.com/openjdk/
- Mercurial: http://hg.openjdk.java.net/
- Tarballs (7+): https://openjdk-sources.osci.io/
- AdoptOpenJDK: https://www.github.com/AdoptOpenJDK/openjdk-build
Binary Distribution Summary
|Distribution||Ver||TCK||Public Updates||Arch(*)||Commercial Support|
|Eclipse Adoptium / AdoptOpenJDK||8, 11||Yes/
|Until at least Sep 2023
Until at least Sep 2023
|Major + Minor||IBM|
|Amazon Corretto||8, 11||Yes||Until at least June 2023||Major||–|
|Azul Zulu||7, 8, 11, 13||Yes
|?||Major + Minor||Azul|
|BellSoft Liberica JDK||8, 11||Yes
|Until at least 2023
Until at least 2023
|Major + Minor||BellSoft|
|Oracle OpenJDK||11||Yes||Until Mar 2019||Major||Oracle (via Oracle JDK)|
|SapMachine||11||Yes||Until September 2022||Major||SAP³|
* All Major = Linux x86, Mac OS X, Windows x64, Minor = various other platforms
Free Binary Distributions
Free Builds for Linux, Windows, Mac, etc. [OpenJDK, no commercial support]:
- Eclipse Adoptium / AdoptOpenJDK (commercial support also available by IBM)
- Amazon Corretto
- Azul Zulu (commercial support also available)
- BellSoft Liberica JDK (commercial support also available)
- Linux Distros
- OpenLogic OpenJDK
- Oracle OpenJDK build
Commercially Supported Distributions
Eclipse Adoptium / AdoptOpenJDK
- See IBM below
Amazon Corretto [OpenJDK base]:
Azul Systems [OpenJDK base]:
BellSoft [OpenJDK base]:
IBM [OpenJDK base + OpenJDK with Eclipse OpenJ9 VM]:
Oracle JDK [OpenJDK base]:
Red Hat [OpenJDK base]:
The various Linux distros will continue to provide OpenJDK for their respective distributions, including but not limited to Debian, Ubuntu, CentOS, Fedora, Mint, Alpine, et al.
- Linux Distros do not typically offer paid support, the exception being Red Hat for OpenJDK on RHEL.
Please visit your distro homepage for more information.
Eclipse Adoptium (previously AdoptOpenJDK)
Backing Adoptium (previously AdoptOpenJDK) is Alibaba, Amazon, Azul, Huawei, IBM, Microsoft, Pivotal, Red Hat, and many others. It provides OpenJDK binary distributions (Hotspot and Eclipse OpenJ9 VMs) for an extensive range of platforms (Linux, Mac, Windows 32/64, Arm 32/64, z/OS, Solaris, AIX, PPC, s390, and more).
- AdoptOpenJDK offers community support and provides well-tested binaries from OpenJDK and Eclipse OpenJ9 upstream projects.
- jClarity no longer offers commercial support for OpenJDK (with Hotspot VM) binaries built at AdoptOpenJDK after being acquired by Microsoft in August 2019
- IBM offers commercial support for OpenJDK (with HotSpot or Eclipse OpenJ9 VM) binaries built at AdoptOpenJDK.
- Perforce, a team within OpenLogic (a US based OS firm) provide 3rd party support to all builds (as at 06/05/2021).
Amazon Corretto is a no-cost, multiplatform, production-ready distribution of the OpenJDK. Corretto comes with long-term support that will include performance enhancements and security fixes. Amazon runs Corretto internally on thousands of production services, and Corretto is certified as compatible with the Java SE standard. With Corretto, you can develop and run Java applications on popular operating systems, including Linux, Windows, and macOS.
Amazon offers Corretto on AWS long-term support and includes performance enhancements and security updates for Corretto 8 until at least June 2023 at no cost. Updates are released at least quarterly. Corretto 11, corresponding to OpenJDK 11, is currently in preview and will be generally available during the first half of 2019. Amazon will provide LTS for Corretto 11 with quarterly updates until at least August 2024.
Azul provides OpenJDK binaries (Zulu) as well as a specialized Java platform (Zing).
Azul offers an option for all companies that do not want to skip all Java SE versions between LTS releases but cannot switch to the newest version every six months. Next, to support all LTS releases, where Azul provides one more year of support than Oracle, Azul offers support for so-called Medium Term Support (MTS) releases for their Zulu JDK. Here you can buy commercial support for every second Java SE version regardless of if it is LTS or not. The support duration of these versions is different. Azul tries to provide a good time range to prepare for migration to the next version and defines three different durations to support Java SE versions.
Unlike Oracle, Zulu’s commercial support is not defined per CPU but based on the number of systems. A system is a physical or virtual server. The only difference between standard and premium is the availability of support. By buying premium support, you can call Azul 24×7.
Liberica JDK is a supported OpenJDK-based binary distribution for desktop, server, or embedded use. Supported platforms: Linux x86 32 & 64 bit, Windows x86 32 & 64 bits, MacOS X, Linux ARM 32 & 64 bit, Solaris SPARC and x86. Additional platforms are available by request.
Liberica JDK has commercial support for LTS versions. The support pricing is calculated based on the number of desktops, physical or virtual servers, or embedded platforms. Please contact firstname.lastname@example.org to get a quote.
IBM provides native JDK bundles for AIX, Linux (on x86, Power, zSystems), z/OS, and IBM i. IBM offers the IBM SDK for Java SE versions for use with IBM products or platforms and developer use from developerWorks. IBM also supports OpenJDK LTS binaries built and tested at AdoptOpenJDK.
For Java SE 7 and 8, IBM still provides security updates and bug fixes. The IBM support lifecycle will continue to be updated. Based on the new Java SE release schedule, IBM announced that the LTS releases would be available as OpenJDK with OpenJ9 binaries from AdoptOpenJDK.
In June 2018, Oracle replaced its legacy “Java SE Advanced” perpetual license support product with a Subscription-based offering that includes license and support. One of them targets Java SE on the desktop, and the other one Java SE on the server, cloud, and Java SE in general.
- If you do not use Java SE on the desktop, then choose “Java SE Subscription”.
- Use Java SE on the desktop for client apps? Choose “Java SE Desktop Subscription”.
- If your software uses a Java SE server and Java SE-based clients, you should choose both offerings.
Commercial support for Java SE applications on the desktop might become quite important for some companies since Oracle will drop several important desktop features from the JDK, starting with Java SE version 11. If you are using Java SE on the desktop, please read:
- JavaFX Separate Module
- JavaFX Separate Module Part II
- JavaFX Separate Module Is Now Available
- Oracle announced the Java client roadmap in 2018.
Red Hat produces OpenJDK binaries for various platforms that Red Hat Enterprise Linux runs on. Red Hat also provides its OpenJDK source RPMs for CentOS. Usually, after 24h to 72h, the CentOS team has built binaries from it and has made these available for the CentOS distribution.
Red Hat won’t provide Java SE 9 and 10 releases. The following distribution that Red Hat plans to release is OpenJDK 11 for Red Hat Enterprise Linux 7. Currently, Java SE 8 is the supported release for Red Hat Enterprise Linux, and the company will support it until 2023.
- General Support information from Red Hat
- The unsupported community built binaries Linux/Windows from Red Hat upstream (ojdkbuild)
Java Desktop / Java Web Start / JavaFX
You need to be aware of changes with Desktop Java SE starting with Oracle JDK 11.
JavaFX / OpenJFX
Starting with Java SE 11, neither the OpenJDK builds nor the Oracle JDK binaries include the JavaFX libraries. The JavaFX components are now part of a separate SDK, and you can use their artifacts via build tools (e.g., Apache Maven, Gradle, et al.). As a positive consequence of this decoupling, JavaFX development can now have a separate roadmap.
OpenJFX is a project under the OpenJDK community umbrella that continues to develop JavaFX. Oracle, other companies, and individuals in the wider community are actively developing JavaFX. The official source repository is now at https://github.com/openjdk/jfx.
Gluon is the primary vendor providing builds for OpenJFX, but Azul, AdoptOpenJDK, and others also will bundle OpenJFX. As all the OpenJFX source code is 100% open, others can create or distribute binaries. OpenJFX follows a similar approach as OpenJDK. That is, after releasing JavaFX 11, the focus is on JavaFX 12, etc.
Gluon provides a Support Plan for companies who want Long Term Support for JavaFX 11.
The javapackager, which allows bundling applications and their dependencies with (a subset of) the JVM, is no longer part of OpenJFX and is removed from Oracle’s JDK and Oracle OpenJDK builds starting with Java 11. There is a JEP for adding a Java Packaging Tool to OpenJDK. While the new Java Packaging Tool will not be ready for the Java 11 release, Gluon is working on a native image packaging for Java 11 applications.
If you are using Java Web Start technology to distribute desktop clients, you should take care of the current situation since Oracle has removed Web Start from Java.
- IcedTea-Web is an alternative you can use
- AdoptOpenJDK will be supporting OpenJDK binaries with IcedTea-Web.
- IBM will be supporting AdoptOpenJDK builds of OpenJDK with IcedTea-Web
- Builds from Red Hat include a simplified IcedTea-Web installer (ojdkbuild)
- Karakun is working on an OSS replacement for Web Start as well.
- Differences between OpenJDK vs. Oracle OpenJDK builds vs. Oracle JDK?
We’ll just talk about Java 11+ LTS releases here. The Oracle JDK and Oracle OpenJDK build are identical. However, commercial vs. GPLv2+CE licensing applies (respectively).
Oracle JDK / Oracle OpenJDK builds, and OpenJDK builds from other providers will be made from the same source for the first six months of updates and should be interchangeable for that period. Oracle will build Oracle JDK / Oracle OpenJDK binaries after six months from Oracle’s fork. Other OpenJDK providers will continue to create binaries from the OpenJDK updates project. Therefore, Oracle JDK / Oracle OpenJDK and OpenJDK build from the different providers may differ in small ways. Binaries from various parties may, of course, vary over time.
- Differences between OpenJDK from (non-Oracle) provider A vs. provider B?
We’ll just talk about LTS releases here. As has been the case with the Java SE 6 and Java SE 7 updates projects, various providers work together upstream in the OpenJDK community, which provides the common repositories, mailing lists, and other infra to share the work. The difference between OpenJDK-based binaries is mostly non-core features, like extended monitoring and diagnostic support. Although there may be slight differences in the final binaries (perhaps a provider-specific tool etc.), they will have the same security and stability baseline as has been true for many years.
- Differences between Red Hat OpenJDK and AdoptOpenJDK?
Andrew Haley (Java Platform Lead Engineer, Red Hat) stated: “…we tweak our builds to use system libraries rather than bundled libraries, and we make a few other distro-specific patches. Also, as a matter of policy, our distros are built from source.”
For a more detailed technical comparison of Red Hat OpenJDK (for Windows) and AdoptOpenJDK, see Alex Kasko’s comment on Stack Overflow.
- If I stay on Oracle JDK 8 / 11, do I have to pay to get security and bug fixes?
For Oracle JDK 8, for personal desktop use, for development, testing, prototyping, demonstrating, and certain types of applications, then no. For most commercial use after the April 2019 update, then yes.
- If I stay on OpenJDK 8 / 11, do I have to pay to get security and bug fixes?
Not necessarily. As was the case with Java SE 6 and Java SE 7, Oracle works with the OpenJDK community to transition the leadership of OpenJDK update projects to other contributors, which has worked well for over a decade. Red Hat will continue this leadership in OpenJDK 8 and OpenJDK 11 with Oracle and other parties’ help ensuring that essential patches get selectively backported. You then choose to take downstream OpenJDK-based binaries from various providers for free or as part of a paid support offering. An OpenJDK Vulnerability group deals with 0-day exploits and CVE’s and ensures that fixes get out as quickly as possible.
- Will Oracle’s JDK 8 and 11 still be available for download (last public release)? For example, a company has software that only runs on Oracle’s JDK 8, and they spun up a new machine after January 2019?
You can still download older versions of the Oracle JDK up to the point where the public updates stop. Moreover, Oracle JDK 8 continues to be free for personal desktop use, for development, testing, prototyping, and demonstrating, and with certain types of applications through at least 2020.
- If someone is using Oracle JDK 8 to run commercial software after April 2019, do they need to purchase a license?
No. The user can continue to use Oracle JDK 8 indefinitely without paying. The only cost is to get updates beyond April 2019, in which case they will need to purchase an “Oracle Java SE subscription”. The usual “End of Public Updates” process has been in practice for over a decade applies here. Also, note that Oracle JDK 8 continues to be free for personal desktop use, development, testing, prototyping, and demonstrating, and with certain types of applications through at least 2020.
- What happens to Oracle Java Web Start after April 2019? Does it continue to run, or at what point do you need to purchase a license?
Since Web Start is part of Oracle JDK 8, it will continue to work and be used indefinitely without cost. As above, if you need updates (bug fixes and security patches), you will need to purchase a “Java SE subscription”. Consumers are supported for free until at least 2020. Oracle has stated that they will continue to support (i.e., provide commercial updates for) Java Web Start at least until March 2025. There is also IcedTea-Web as an alternative, and Karakun is working on an OSS replacement for Web Start.
Appendix I – Signatories, Thanks, and References
Special thanks go to the following folks who paved a road with their earlier blog posts. Much of the material in this document was collated (with permission) from these sources.
- Java Champions – A Community Body of Java Experts
- Simon Ritter (Deputy CTO – Azul) – Eliminating Java Update Confusion
- Stephen Colebourne (Joda-Time author) – Java is still available at Zero Cost and Java 11 Options.
- Hendrik Ebbers (Co-founder Karakun) – Do I need to pay for Java now?
- Johan Vos (Co-founder Gluon) – JavaFX Release and Support Plans
- Martijn Verburg – Lead Author / Facilitator of this document
- Many others!
- Oracle via Donald Smith (Senior Director of Product Management)
- Faster and Easier User and Redistribution of Java SE
- Extension of Oracle Java SE 8 Public Updates and Java Web Start support.
- The future of JavaFX and other Java Client Roadmap Updates
- Update and FAQ on the Java SE Release Cadence
- A Quick Summary on the new Oracle Java SE Subscription
- Oracle JDK Releases for Java 11 and later.
- Other notable folks
- Jonas Konrad – Java Support
The following Java ecosystem folks back this document as a fair and balanced record of the state of Java SE / OpenJDK and plans for free updates or paid support (with updates).
|Martijn Verburg||AdoptOpenJDK co-lead, Java Champion, London JUG Leader, Member of JCP Executive Committee, Jakarta EE Steering Committee Member, CEO @ jClarity (acquired by Microsoft)|
|Hendrik Ebbers||Java Champion, JUG Dortmund Leader, JSR EG member, Co-founder of Karakun|
|Ivar Grimstad||Java Champion, Malmö JUG Leader, JCP Executive Committee Member, EE4J PMC Lead, Jakarta EE WG Member|
|Markus Eisele||Java Champion|
|Heinz Kabutz||Java Champion, The Java Specialists’ Newsletter, JCrete Founder|
|Ivan St. Ivanov||Java Champion, Bulgarian JUG Leader, jPrime Conference Organizer, Virtual JUG Leader, VIDA Software co-founder|
|Stephen Colebourne||Java Champion, Creator Joda, and ThreeTen projects|
|Trisha Gee||Java Champion, Sevilla Java User Group Leader, JCP Executive Committee Member, Java Developer Advocate for JetBrains|
|Josh Long||Java Champion, Spring Developer Advocate for Pivotal, best-selling book author and prolific speaker worldwide|
|Gail Anderson||Java Champion, Oracle Developer Champion, co-founder Anderson Software Group, Inc.|
|Justin Lee||Java Champion, JSR EG Member|
|Mattias Karlsson||Java Champion, JUG Leader, and Jfokus conference founder|
|Andres Almiray||Java Champion, JCP EC Member, Oracle Developer Champion, Hackergarten worldwide|
|Alan Williamson||Java Champion, author, podcaster, CTO of MacLaurin Group|
|Maurice Naftalin||Java Champion, Oracle Developer Champion, author|
|Mark Heckler||Java Champion, Spring Developer Advocate for Pivotal, conference speaker, & published author|
|Kirk Pepperdine||Java Champion, jCrete cofounder, Performance tuning advocate, co-founder jClarity|
|Matt Raible||Java Champion, Web Developer, and Developer Advocate at Okta. Classic VWs Enthusiast.|
|Henri Tremblay||Java Champion, Montréal JUG & Devoxx4kids Québec leader, EasyMock and Objenesis lead developer, conference speaker|
|Cay Horstmann||Java Champion, author of “Core Java.”|
|David Heffelfinger||Java Champion, Apache NetBeans Committer, Technical Author, Jakarta EE Consultant, and Instructor.|
|Josh Juneau||Java Champion, Apache NetBeans Committer, Jakarta EE Mojarra Committer, Technical Author, Podcaster|
|Jonathan Giles||Java Champion, Dukes Choice Award winner, Microsoft Cloud Developer Advocate, Co-founder Gluon|
|Ben Evans||Java Champion, former JCP EC Member, co-founder jClarity, author of “Java in a Nutshell” & “Optimizing Java.”|
|Johan Vos||Java Champion, Oracle Developer Champion, Gluon co-founder|
|Thor Henning Hetland||Java Champion, Principal at Capra Consulting. Community leader Cantara, javaBin, JavaZone, Oslo Software Architecture, and more.|
|Simone Bordet||Java Champion, JUG Torino co-leader, Jetty team member|
|Holly Cummins||Java Champion, Author of Enterprise OSGi in Action|
|Daniel Bryant||Java Champion, co-author of Continuous Delivery in Java, and leader within the LJC|
|Mohamed Taman||Java Champion, Oracle Groundbreaker Ambassador, JCP member, EGJUG leader. International speaker, Author of “JavaFX essentials”, “Getting started with clean code, Java SE 9”, “Hands-On Java 10 Programming with JShell”, and “Secrets of the Java Champion” Won Duke’s choice 2014, 2015 awards, & JCP outstanding adopt-a-jar participant 2013 awards.|
|Simon Maple||Java Champion, Oracle Developer Champion, Virtual JUG leader, Director of Developer Relations, Snyk.|
|Oliver Gierke||Java Champion, Spring Data Project Lead at Pivotal Software, Inc.|
|Jean-Michel Doudoux||Java Champion, author of “Développons en Java.”|
|Michael Kölling||Java Champion, Creator of BlueJ and Greenfoot, author of ‘Objects First with Java’.|
|Mert Çalışkan||Java Champion, Director of OpsGenie Academy, Published Author, Speaker|
|Leonardo M R Lima||Java Champion, JSR Spec Lead|
|Cesar Hernandez||Java Champion, Senior Software Engineer at Tomitribe, Eclipse Foundation Committer, Guatemala Java User Group member, Speaker and board member of Latin America Virtual JUG JEspañol.|
|Rustam Mehmandarov||Java Champion, Chief Engineer, Leader of JavaZone, board member, and former leader of javaBin – Norwegian Java User Group.|
|Paul Bakker||Java Champion, Senior Software Engineer at Netflix|
|Geir Magnusson Jr||Java Champion, Member Apache Software Foundation, CTO at fuboTV|
|Jorge Vargas||Java Champion, JUG Leader JavaUP – Mexico – Speaker and member of JUG JEspañol.|
|Bruno Souza||Java Champion, JUG Leader of SouJava|
|Ian F. Darwin||Java Champion, Developer, Author, Trainer, Mentor, Speaker. Author of O’Reilly Java Cookbook, Android Cookbook, etc.|