A licensing switch for Oracle Java 17 that will end free use has prompted questions about other distributions of Java 17. In the FAQ below, we address questions we have heard from the global Java community.
The answer to the question whether JDK 17 is free is both yes and no.
Yes: Up-to-date builds of Java 17 can be freely downloaded from providers like Azul and Eclipse Temurin, which offer TCK-tested Java distributions. Additionally, you can build Java 17 yourself from source code from the OpenJDK Project. These builds are licensed under the open-source GPLv2 license.
No: Java 17 builds obtained from Java.com are licensed by Oracle, and they are no longer free as of September 19. Here’s why – On July 16, Oracle distributed the last free update to Oracle JDK 17, licensed on a free, permissive use license known as the No Fee Terms and Conditions License. This license allowed unrestricted use of a new, long-term support (LTS) release from its release date until a year after the release of the next LTS version. In the case of Java 17, the next LTS version is Java 21, which was released on September 19, 2023.
If you are currently running Java apps that use Oracle JDK 17 as your runtime, you will need to obtain a standard Oracle Technology Network (OTN) license, which is available with a Java SE Universal subscription.
In general, if you are using an Oracle Java runtime governed by the OTN for commercial use, you will need a Java SE Universal subscription. These are priced based on an employee-based metric that starts at $15 per month per employee. However, there are exceptions. Oracle provides a free nonexclusive, nontransferable, limited license for personal use, development use, Oracle Approved Product Use, and Oracle Cloud Infrastructure Use.
If the Java 17 applications and infrastructure you use for commercial purposes are currently running on Oracle JDK you have two choices. First, you can get a subscription to Oracle Java SE. This subscription comes with the benefit of support from Oracle’s Java experts and Critical Patch Updates, which are useful for ensuring stability while keeping your Java estate fully patched and up to date.
Alternatively, you can move to a distribution like Azul, which offers both free versions of Java 17 and fully supported versions with a subscription to Azul Platform Core. The benefit of Azul Platform Core over Oracle Java SE is that you get the equivalent engineering support, including Critical Patch Updates delivered on a firm SLA, and you also get support for older versions of Java, like Java 6 and 7. These versions have reached their end of life and are no longer supported by Oracle. Azul prides itself on supporting the greatest variety of hardware and software platforms, which allows customers to standardize on Azul and to ensure that their entire estate, including applications running on Java 6 and 7, are fully patched.
Azul has developed a proven migration methodology, drawing on more than 10 years of experience helping Fortune 100 companies move to Azul. This methodology consists of three phases: discovery, execution, and validation.
Discovery phase
Build an Accurate Inventory: Begin by creating a comprehensive inventory of your Java applications. While traditional ITAM tools can be useful, you might also need special-purpose scripts to ensure you have located all the instances of Oracle Java in your environment. It’s essential to search for all versions of Java, not just Java 17, as other versions could also trigger a license liability to Oracle.
Stakeholder Alignment:Ensure that all stakeholders are aligned and working together. This includes software license managers, application owners, and the QA testing team. One of the main reasons migration projects go awry is the lack of alignment among necessary parties.
Execution Phase
Documentation Familiarity: Before executing the migration, thoroughly review the documentation of your chosen Java provider. Although “migration” may seem like an exaggerated term for swapping out one TCK-tested distribution for another, understanding potential pitfalls is crucial. Java has excellent backward compatibility, and you should be able to swap in the most recent version of JDK 17 for whatever version you are using. However, issues can arise, particularly if you need to migrate to an older version, like Java 8, that is running on desktops.
Update compatibility: If you encounter issues, it is a good practice to explore whether they are related to changes introduced by a more recent update. An experienced Java support engineer can be helpful in quickly getting your migration back on track and provide archived updates if necessary.
Environment Variables: Point the JAVA_HOME environment variable to the installation of the replacement JDK and update PATH variables if necessary. Conduct smoke tests to ensure the application is functioning correctly. If the application runs smoothly, additional testing might not be needed, especially for non-critical applications. Save extensive testing for critical applications, particularly those running on older JDKs that have not been properly updated.
Validation Phase
Phased Approach: Adopt a phased migration strategy. Start with noncritical applications and/or servers before progressing to critical applications and/or desktops that might require closer attention.
By following these best practices, you will ensure a faster, more streamlined migration to Java 17.
All versions of Oracle Java are free for personal use.
However, if your use of Java falls into the following categories, you will need a Java SE subscription for Java versions governed by the Oracle Technology Network license.
End of Life refers to versions of Java, specifically the Java Development Kit (JDK), the Java Runtime Environment (JRE) and the Java Virtual Machine (JVM), are no longer supported by Oracle or other vendors.
Oracle’s Unlimited License Agreements offers unlimited use of agreed-upon Oracle software products for a specified time period in exchange for a flat fee.
Oracle’s No-Fee Terms and Conditions (NFTC) license, introduced in September 2021, allows free use of the current long-term support (LTS) version of Oracle Java from the time that version is released until one year after the next LTS version is released.
The Oracle Technology Network License Agreement is a licensing framework governing the use of Oracle software, including Oracle Java.