What the recent changes to support and licensing of Java programming language developer tools means for you.
There have been notable changes to the licensing and support for the tools Java developers use to build software in recent years.
These changes have caused confusion and concern among some developers and organizations, who fear they will have to pay for support that's been free in the past.
An executive from Oracle, the company that oversees the Java language, and other industry veterans spelled out what the changes mean to developers at the QCon 2019 London conference.
Donald Smith, senior director of product management for Oracle, explained why the firm had shifted to releasing a new version of Java every six months.
"We had to do that to keep up with modern application development. I'm very unapologetic about the new release cadence because doing major releases every three to five years and having a three to five-year window to get a feature out is just not sustainable anymore," he said. "A release cadence of six months is how we keep relevant in the cloud."
Trisha Gee, the developer advocate at software firm JetBrains, had a similarly optimistic take, adding: "This is a much better way of working, we know this from doing continuous delivery and deployment," she said.
Here's what developers need to know about the changes to Java.
How long will new releases of Java be supported for?
- Since Java 9, new releases of Java - the Java Development Kit (JDK) and associated software - come out every six months, every March and September, with each release supported for their half-year lifespan.
"Time is going to show that getting on the six-month cadence is going to be quite doable and straightforward," says Smith, who claims these are minor releases and therefore less painful to migrate to.
- Every three years there will be an LTS release of Java that receives long-term support from Oracle. The most recent LTS release is Java 11, with forthcoming Java 17 also expected to be an LTS version.
Do you have to pay to use Java?
- No, not unless you want long-term support from Oracle.
- Starting with Java 11, Oracle provides two Java Development Kit releases, an OpenJDK build under the GPL open-source license and a commercial Oracle JDK build under a paid-for license.
- The open-source variant is free to use in production, while there is a fee for organizations using the commercially licensed JDK in production. For example, licensing for the Java SE variant of the Oracle JDK for use on servers starts at $25 per processor per month, while fees for the licensing for the Java SE Desktop variant starts at $2.50 per user per month. You can see more details here.
- If you want long-term support from Oracle for a Java release you have to pay for it by using the Oracle JDK build. As mentioned, Oracle will only support OpenJDK builds for six months.
- From Java 11 onwards, the free OpenJDK build and paid-for Oracle JDK build are "essentially identical", with both including commercial features that used to be charged for, such as Java Flight Recorder and Mission Control.
How do you get free long-term support for Java?
- Download an OpenJDK build from a vendor other than Oracle. Various vendors offer OpenJDK builds - including IBM, Red Hat, AdoptOpenJDK, AWS, and Azul - some of which include free long-term support.
- AdoptOpenJDK.net has JDKs for Java 8, 9, 10, and 11, and also offers a choice between the HotSpot and OpenJ9 JVMs (Java Virtual Machines). These JDKs offer LTS support and free updates until at least September 2023 for Java 8 and at least September 2022 for Java 11.
- Gee complimented the AdoptOpenJDK initiative, saying it would offer organizations plenty of time to migrate to newer versions of Java.
"This is a community-driven effort but it has the backing of a bunch of well-known names in the Java space. This would be my default place to go for downloading a free-to-use JDK based off OpenJDK," she says.
"This is great because it lets you slowly migrate from 8 to 11 to 17 with a little bit of overlap."