I traditionally write up a retrospective on the year from the perspective of the Java Ecosystem. But this year there were some major announcements by Oracle on their positioning around Java support and subscription licensing which has sent the ecosystem into a bit of a tailspin.
The information by Oracle was often misread, misinterpreted and misunderstood with the added complication of many folks not understanding their options going forward.
To combat this the Java Champions wrote a combined “Java Is Still Free” document. I’m re-iterating the start of the document, so you have a clear understanding of what your options are for getting Java 8 and 11 going forwards.
With the recent changes to Oracle JDK distribution and support, there’s been considerable uncertainty over the rights to use Oracle JDK vs Oracle’s OpenJDK builds vs OpenJDK builds from other providers. There are also plans around free updates, and (new and existing) paid support models available from various vendors to consider.
The ShortER Version
You can still get the Oracle JDK, Oracle’s OpenJDK builds and OpenJDK by other providers for free (see the callout and the rest of the section for the nuances on this). This is possible because multiple providers offer implementations of the Java SE specification.
|Java SE / OpenJDK / Oracle’s 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 of Java SE from various providers (such as Azul, Eclipse, IBM, Red Hat, Oracle, SAP, and others), the most common of these being Oracle JDK.
Oracle JDK 8 is undergoing the “End of Public Updates” process, which means there are no longer free updates for commercial use after January 2019. However, since Java SE 9, Oracle is also providing Oracle’s OpenJDK builds which are free for commercial use, and there are free OpenJDK builds from other providers like AdoptOpenJDK, Azul, IBM, Red Hat, Linux distros et al.
Providers prove that their implementation meets all the requirements of the Java SE specification by having it pass all the tests of the relevant Technology Compatibility Kit (TCK).
Going forward there are several options to get a JDK. We focus on Java SE 8 (which is going through the end of public updates process as with earlier versions), and Java SE 11 which is 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.
- Oracle will provide public updates of Oracle JDK 8 through at least December 2020 for personal desktop use and January 2019 for commercial use. After those dates (check which one for your user’s use case!), users can either go onto a paid support plan or use a Java SE 8 / OpenJDK 8 binary distribution from another provider.
- You can also continue to use Oracle JDK 8 indefinitely without updates.
- If you are not using Oracle JDK 8, then your current Java SE 8 / OpenJDK 8 provider will provide updates and/or paid support plans to choose from.
|I WANT $FREE AND FREE (AS IN USE) JAVA SE 8, WHAT DO I CHOOSE?
If you want updates of Java SE 8 after January 2019, use an OpenJDK binary distribution from an OpenJDK provider, i.e. Linux distros, AdoptOpenJDK, Azul, IBM, Red Hat, and others.
Getting Java SE 11 (LTS)
You have several options to choose from. Please read them carefully, especially as Oracle JDK is changing from Java SE 11 onwards.
- Starting with Java SE 11, Oracle provides their (OpenJDK based) JDK via:
- Oracle OpenJDK builds – Under the existing Open Source GPLv2+CE license, and
- Oracle JDK – Under a paid commercial license (but free for development use), for 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 plans to provide updates for its Oracle OpenJDK builds for two quarterly updates and then transition users to the next version, every six months (this includes LTS versions).
- You can also get Java SE / OpenJDK binary distributions from a variety of other providers including Linux distros, AdoptOpenJDK, Azul, IBM, Oracle, Red Hat, and others. This includes updates for a variable 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, IBM, Red Hat, and others.
I recommend taking an hour out and reading the full “Java Is Still Free” report and also join the AdoptOpenJDK community where you’ll get advice on which OpenJDK is right for you.
Have a great holiday everyone and remember to stay away from javac and friends for a few days 🙂
Author: Martijn Verburg
The Diabolical Developer, CEO – jClarity, London JUG co-leader (LJC), Speaker, Author, Javaranch Mod, PCGen & Adopt OpenJDK / A-JSR Cat herder, Java Champion