In the last two years, at least two 'major changes' happen and impacting Java community. The first one, is Oracle announced that they intend to move Java to a release every six months. And the second is, along with the new cadence Oracle are announcing a major shift in how they build and release Java. Oracle intends to produce and distribute OpenJDK binaries as the primary JDK for developers going forward. This will replace the proprietary-licensed Oracle JDK as the primary release artifact distributed by Oracle. And now, this is what happen:

Java Move to 6-Monthly Release Cadence

The proposal to change the release train to "one feature release every six months" rather than the current two-year schedule already took effect, start from Java 9 release. Here the release table since Java 9:

VersionRelease DateEnd of Free Public Updates
Java SE 9September 2017March 2018
Java SE 10March 2018September 2018
Java SE 11 (LTS)September 2018N.A. for Oracle
At Least September 2022 for AdoptOpenJDK
Java SE 12March 2019N/A for Oracle
September 2019 for Oracle's OpenJDK

When this article is posted at 20 December 2018, Java 8 and Java 11 are the currently supported long-term support (LTS) version. And this is the situation:

  • Java 7 is no longer publicly supported
  • Java 8 "end of public updates" is scheduled for January 2019 for commercial use, and not earlier than December 2020 for non-commercial use
  • Java 9 has stopped receiving updates since Java 9 was a short-term rapid release version that has been superseded by Java 10
  • Java 10 is the previously supported rapid release version, and the support ended on the same date that support for Java 11 began, in September 2018.
  • Java 11 long-term support will not be provided by Oracle; instead, the broader OpenJDK community, as AdoptOpenJDK, is expected to perform the work.
  • Java 12 to be released in March 2019, when in the same date no more free public updates from Oracle OpenJDK.

Read more from Update and FAQ on the Java SE Release Cadence.

Oracle JDK 11 License - Java 11 (Onward) In Production

Oracle JDK 11 License

Oracle JDK 11 License

From Java 11, Oracle has changed the license of their JDK, so instead of having a single JDK build which can be used either commercially (i.e. with paid support) or for free (which most of us were doing), they now have two different JDK builds:

  • Oracle’s JDK (commercial) – "official" JDK from Oracle's website. We can use this in development and testing for free, but to use it in production we have to pay for it
  • Oracle’s OpenJDK (open source) – primary JDK for developers. We can use this for free in any environment, like any open source library

Note that since Java 11, Oracle’s commercial JDK and Oracle’s OpenJDK builds are functionally the same, so we should be able to run our applications on either without having to make any changes or losing any features.

What This is Mean?

At least for me:

  • Use Oracle OpenJDK from now. As of Java 11, OpenJDK has feature parity with Oracle’s JDK, so if you want to use a free JDK, use OpenJDK. You can download Oracle’s OpenJDK 11 build, or builds from the community led AdoptOpenJDK.
  • We can still download the commercial Oracle JDK for free and use it for free in development/test environments, but it's no use if since beginning we intend to use OpenJDK in production environments.

Read more from:

And How This Changes Impact Us?

From my opinion, nothing... really. Most enterprise environment is quite... conservatives, they even still not adopted Java 8 (although even Java 7 already in end-of-support). In projects we also mostly rely in stable (or proved - battle-tested) instead of fast pace (or even worse: frequent-changing) technologies and framework. Many will stay with Java 8. The challenge still same, to produce high quality products, put the licensing aside first.

Yes, Java still free...