Using Java 11 In Production: Important Things To Know

If you stay up to date on news from the Java community, you may have heard that Oracle changed their support model for Java. Some rumors even suggest that we now have to pay to use Java — this is not true!

This topic is quite a complex one since there are a number of overlapping changes that have come together since the release of Java 8. The new, six-monthly release cadence and Oracle's changes in licensing and support model mean that any organization that deploys a Java application should take this opportunity to look at:

Image title

This warning is on the download page for Oracle’s commercial JDK – don’t ignore it!

Changes to the Oracle JDK

In the past, many of us simply downloaded Oracle's JDK and used this in development, in testing, and in production. 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 many of us were doing), they now have two different JDK builds:

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.

Support and Updates

There's an important difference between these two builds though — if you're using Oracle's commercial JDK, you'll get updates and support. If you're using Oracle's OpenJDK build, Oracle won't be providing updates to past versions. What this means is that now Java 11 is out and Oracle will no longer be updating their OpenJDK builds for 10 or 9. So, if you're using Oracle's OpenJDK build, you should be prepared to update to each new version of Java as it comes out (or run an older version that won't get updates).

Having said that, Oracle is not the only vendor in this game. For years, we've been used to using their JDK for free, and so, it has generally been our default, but there are other vendors who provide JDKs, and they have different support models (free and paid for) and different attitudes towards providing updates for different versions of Java. Some of these other vendors, for example, may continue to provide updates and/or support for Java 9 (which Oracle will not).

Stephen Colebourne has written a post summarizing the different JDK builds from the different vendors and explaining how (and why) all these vendors provide different builds based on the same code (i.e. OpenJDK).

If you don't want to use either of the Oracle JDK builds (for example if their support or updates policies doesn't suit you), investigate what Azul, IBM, Red Hat, and the community-led AdoptOpenJDK have to offer instead.

Conclusion

This summary is something I wrote in September's Annotated Monthly, updated to reflect the release of Java 11:

Further Information

 

 

 

 

Top