The New Oracle Java Release Cycle

Categories: Java

Oracle have changed the way they release new versions of the Java JDK and the Oracle Java Virtual Machine.

The New Oracle Java Release Cycle

Previously, releases were made every 2 years or so and a release was maintained (bugfixes and security patches) until two further releases had been made (eg Java 5 was supported until Java 7 was released).

As of now, Oracle intends to release a new Java versions every 6 months - in March and September each year. Version numbers may possibly be changed to year.month format, eg 18.9 for the September 2018 release (still being debated). Some releases will be marked as “long term support” (LTS); the current intention is to do this every 3 years.

Non-LTS releases will only be supported (receive patches) until the next release comes out (ie for just 6 months). LTS releases will be supported for “at least 5 years”.

Java 8 is effectively a semi-LTS release, with new bugfix releases available for download from the Oracle website for free until Jan 2019 (and paid support planned until 2025). The “auto-update” feature for Java 8 installed as a service on desktop systems will continue to receive updates over the auto-update channel until December 2020.

Java 9 was released in September 2017, and is not an LTS release. Support therefore terminated in March 2018.

Java 10 was released on 20 March 2018. It is also not an LTS release, and therefore support will terminate in September 2018.

The next release planned for 2018.09 (which might have version number 11 or 18.09, still to be determined) is expected to be an LTS release. Java 8 was first released in March 2014, so an LTS is “overdue”.

For Java Software Developers

The new “jlink” feature in Java 9 made it easier to embed a custom JVM within other products. As a distributor of Java-based software, you therefore have the option of:

  • requiring your customers to install a Java version for your product to run on, or
  • bundling a Java version with your software.

In the first case, it would be advisable to recommend to customers that they install an LTS version of Java (and Oracle hope they will also take a support license from Oracle). See however the section on OpenJDK later.

In the second case, you will need to distribute a new version of your software each time a relevant security patch or bugfix is released for the version of Java you have embedded. In this approach, embedding an LTS version of Java does not reduce the workload - you still need to release a new version of your product for each relevant fix. The lack of LTS support for the six-monthly releases is therefore not a significant issue, while allowing you to get your hands on new functionality faster.

OpenJDK

As almost all of Java is now open-source under the OpenJDK project, some other organisation could theoretically make releases on a different cycle. It is possible that some Linux distributions (eg RedHat, Debian) which bundle OpenJDK may have different support plans.

References