If you are considering updating the latest version of Java, read this article to learn the most important information about Oracle Java 11.

If you’ve been keeping up with the News in the Java community, you’ve probably heard that Oracle has changed their support model for Java. Some rumors even suggest that we now have to pay to use Java – which is not true!

This topic is complex because there have been many overlapping changes since the release of Java 8. The new six-month release rhythm and Changes to Oracle’s licensing and support models mean that any organization deploying Java should take this opportunity to take a look:

  • Where to get the JDK(e.g. Azul, IBM, Oracle, Red Hat, or other OpenJDK builds)
  • Use the Java version on production
  • Do they want updates (such as patches and security fixes) to these Java versions
  • Which versions you want to use in the future
  • How often they want to update the Java version (the next major version)
  • What support they expect for their version (i.e., classification and error reporting)

Oracle JDK change

In the past, we simply downloaded the Oracle JDK and used it in development, testing, and production. Since Java 11, Oracle has changed their JDK licenses so that instead of being a single JDK build, they are classified as either for commercial use (i.e., paid support) or free (which most of us are doing), and they now have two different JDK builds:

  • Oracle’s JDK (commercial)- Free to use in development and testing, must pay for production use
  • Oracle’s OpenJDK (Open Source free)- You can use it as free as any open source library in any environment.

Note that since Java 11, Oracle’s commercial JDK and Oracle’s OpenJDK versions are functionally identical. As a result, our application doesn’t need to change anything or lose any functionality and runs on either.

Support and Updates

There are important differences between the two versions – if you are using Oracle’s commercial JDK, you will get updates and support. If you are using a version of Oracle OpenJDK, Oracle will not provide updates for previous releases. This means that now that Java 11 is out of the game, Oracle will no longer update their OpenJDK versions for 10 or 9. Therefore, if you are using the OpenJDK version of Oracle, you should be prepared to update every new version of Java it comes out with (or run an old version that doesn’t get updated).

That being said, Oracle isn’t the only vendor in the race. Over the years, we’ve gotten used to using their free JDK, so it’s usually our default setting, but there are other vendors that offer JDK with different support modes (free and paid) and different attitudes toward providing updates for different versions of Java. For example, some of these vendors may continue to provide updates and/or support for Java 9 (Oracle does not).

Stephen Colebourne has written an article summarizing the different JDK versions from different vendors and explaining how (and why) all of them offer different versions of the same code (i.e. OpenJDK).

If you don’t want to use any of the Oracle JDK versions (for example, if their support or update strategy doesn’t work for you), check out Azul, IBM, Red Hat, and the community-led AdoptOpenJDK instead.

conclusion

This summary, which I wrote in Annotated Monthly in September, was updated to reflect the Java 11 release:

  • You can still download the commercial Oracle JDK for free and use it for free in your development/test environment.
  • Oracle’s JDK 8 will no longer receive public updates after January 2019. If you want to receive updates to Java 8, you may need to pay a fee to Oracle or find another JDK version.
  • Continuous support and updates for “older” versions of Java (including 9 and 10) have changed since the six-month release cycle was proposed.
    • Java 9 and Java 10 are no longer updated or supported due to Oracle’s commercially licensed JDK. If you are currently using Oracle’s JDK, you need to see what version is in use and what version you want to use in the future, and understand Oracle’s support model (and price) if you want to use it in production.
    • If you are using OpenJDK, you may need to upgrade to the latest version as soon as possible, depending on which vendor version you are using. This advice applies to almost any free open source library or framework.
    • Other vendors may provide support for Java 9 or other versions.
  • Compare and contrast the supported models and prices of Azul, IBM, Oracle, and Red Hat if you want to provide full support or updates to versions of Java running in production. Note that these companies always offer their services and support for free, but none of this is new.

For more information

  • Java is Still Free (Java Champions) – If you only want to read one article, it should be this. This topic has been explored in depth by Java Champions, an organization of independent experts (full disclosure: the author of this blog post is also a Java Champion). This file has also been reviewed by representatives of the major suppliers, so you can be confident that the information is correct. It is also available in Spanish.
  • A Quick Summary on the new Java SE Subscription (Oracle)
  • Oracle JDK Releases for Java 11 and Later (Oracle)
  • The future of Java and OpenJDK updates without Oracle support (Red Hat)
  • Eliminating Java Update Confusion (Azul)
  • Java is still available at zero-cost (Stephen Colebourne)
  • The Future of Java / OpenJDK and How it Impacts You! (Video: Virtual Java User Group)