Life will never be the same, or will it?
The world of Java development was shaken in 2019 when Oracle changed the licensing policy for JDK 8. As free public updates for Java 8 (still the most popular version amongst developers) were no longer provided, companies had to pay for commercial support or look for a substitution for Oracle Java.
In 2021, Oracle introduced a new LTS release schedule (every two years instead of three) and changed the licensing policy again. Starting with version 17, Oracle JDK is distributed under the “Oracle No-Fee Terms and Conditions” (NFTC) license. Does it mean that Java is free for commercial use again? The answer is not that simple. This article will decipher the terms of a new licensing model and figure out how the new policy affects the companies and the support prices. We won’t go into legal technicalities but try to make the situation the developers face as straightforward as possible based on the information provided by Oracle1.
So let’s see what Oracle has in stock and how much using Java actually costs!
Table of Contents
Java licensing conditions
To understand the intricacies of Java licensing changes, first, let’s explore the difference between personal use and commercial use. Personal use means running Oracle products on the desktop or laptop that belongs to an individual and is solely under their control. Therefore, a corporate PC cannot be considered suitable for this condition as it belongs to a company. In addition, it is permitted to run personal applications and perform personal activities such as gaming or keeping track of your finances. You also may not distribute or give Oracle software provided to you for personal use to third parties separately or as part of your products.
Since 2019, free updates for Java 8 have been available to non-commercial users for personal use, development, testing, prototyping, and some other usage scenarios specified in the Oracle Technology Network (OTN) License for Java SE2. The same applies to Oracle JDK 11, except that Oracle OpenJDK 11 is available under the General Public License, version 2, with the Classpath Exception (GPLv2+CPE) just like any OpenJDK distribution. Note that Oracle provides two builds: Oracle JDK and Oracle OpenJDK. The latter receives updates for six months upon the release of the following version. After that, you have to purchase the license to continue receiving patches and support from the vendor.
In 2021, Oracle changed the licensing terms for Java 17 and introduced the NFTC license based on the feedback from developers who wanted to have “trusted Oracle JDK under an unambiguously free terms license.”3 Now, Oracle JDK versions and builds are available under different licenses, the summary of which you can find in the table below.
|JDK Version (LTS)||Dates||License|
|Oracle JDK 7||7u80, before April 2015||Oracle BCL for Java SE|
|July 2015 and after||My Oracle Support for Oracle customers|
|Oracle JDK 8||8u202, before January 2019||Oracle BCL for Java SE|
|After April 2019 (the latest build is 8u321)||
My Oracle Support for Oracle customers
|Oracle JDK 11||Oracle OpenJDK before January 2019||GPLv2+CPE for all users|
|Oracle JDK (the latest build is 11.0.14)||My Oracle Support for Oracle customers |
and Oracle OTN for Java SE for Personal,
Development, and other Users
|Oracle JDK 17+||Oracle OpenJDK up to January 2022||GPLv2+CPE for all users|
Oracle JDK up to September 2024
|Oracle NFTC License for all users|
So what exactly are the licensing changes?
- The No-Fee Terms and Conditions license is applicable only if you haven’t received the JDK 17 as a standalone package or as part of another product under the Oracle Master Agreement. It means that if you have already purchased, for example, a Java SE Subscription or other Oracle software, the Oracle Java 17 deployment will not be governed by the NFTC.
- The NFTC makes JDK 17 free for commercial and production use under the following restrictions:
- Development, testing, prototyping, and demonstrating your applications. Your applications are the software developed by you or your company;
- Running the software for your personal use or internal business operations. We have already explained what personal use implies. Internal business operations mean that you can deploy and use Oracle JDK within your company;
- Redistribution of software under the NFTC terms without charging licensees any fees.
- The usage of commercial features (e.g., Java Advanced Management Console or GraalVM Enterprise Edition) and redistribution within commercial programs is not governed by the NTFC and remains commercial.
- Users will receive free security updates for three years (one year after the release of a subsequent LTS version) in case of LTS releases. Updates for feature releases will be available for free for one year. After that, it is necessary to either migrate to a newer version or purchase a subscription (the OTN License) to continue Oracle JDK commercial use.
The extent of impact
So how will the new license impact your company and your expenses? It depends on the Java version you are using. For the sake of brevity, let us consider the LTS versions only.
Up to Java 17
If your applications are running on Oracle JDK 8 or 11 and you are not planning to update soon, you can continue using these versions and receive free (for personal use) or paid-for updates.
Please remember that if you are using Java 8 but still haven’t switched to a paid license to receive security updates, your applications are at a very high risk of attacks as you have already missed a lot of vulnerability patches. Consider migrating your applications to OpenJDK. This way, you will be able to enjoy free updates for an extended period. BellSoft, for example, will update Java 8 up to 2031!
For Java 6 or 7 users, nothing changes as well. The only thing they have to consider is the vulnerability of their software. BellSoft provides regular updates for JDK 1.6 & 1.7, so you don’t have to worry about possible exploits.
Java 17 and beyond
You could be starting a new project based on Java, so, naturally, you want to have the most modern JDK version. In this case, you can install Oracle JDK 17, receive free patches for three years, and then migrate to the next LTS version. However, the upgrading process doesn’t take one day. Every Java release contains new features, whereas some features get deprecated or removed. The next version will already be available by the time the process is completed. This way, your developers will spend most of their time tweaking the code for compatibility sake rather than work on your own software.
In another scenario, you receive free updates until Java 21 comes out and then buy the subscription to get updates for JDK 17.
In other words, you will likely have to pay for a Java license, or keep upgrading your application to the newest Java according to Oracle’s schedule, and not yours.
The third alternative is to use an OpenJDK distribution. There’s almost no technical difference between Oracle JDK and OpenJDK, security updates are released quarterly in line with the Oracle CPU schedule, and you can receive commercial support if you need to.
As the detailed comparison of Oracle JDK and OpenJDK is not part of this article, download our white paper on 7 reasons to switch to OpenJDK and see all OpenJDK benefits yourself.
Do you need Oracle licensing?
A crucial choice to make is whether you want to pay for a license from Oracle. Here are some points that will help you clarify your current state of affairs and decide on your future strategy:
- Do you need technical support? We have described the advantages of Java app support, but you may consider yourself capable of eliminating issues yourself. If this is not an option, OpenJDK vendors also provide high-quality support. For example, BellSoft’s engineers with 15+ years of Java experience are ready to solve your problems 24/7/365.
- Do you need commercial features? For most of them, there are alternatives. For instance, JDK Flight Recorder and Mission Control are part of the OpenJDK project. GraalVM CE is almost as good as the EE edition, with community members working tirelessly on its improvement. And Java AMC can be substituted with Liberica Administration Center, which has an even wider range of functions.
- The quarterly CPU release cycle ensures enhanced runtime security. However, you don’t need Oracle Java to always stay on top of the latest improvements. Patches released by Oracle are rapidly applied into the OpenJDK, so OpenJDK is just as secure. With Liberica JDK, you will receive updates as fast as with Oracle JDK.
- You may need to conduct an inventory of all JDKs you are running and decide when to upgrade them, and to which version. In addition, if runtimes require a subscription, you are at risk of vast expenses, so it is better to find out as soon as possible. Liberica Administration Center helps you control all Java runtimes in your whole Windows PC fleet and update them with one click.
- Are you ready to upgrade every two years if you want to receive free updates? Remember that migrating to the latest Java version is time and resource-consuming, so you may not be able to keep up with the Oracle release schedule. We recommend you choose an OpenJDK vendor providing long-term support for the LTS Java version, which will enable you to concentrate on other tasks. Most OpenJDK distros are supported longer than Oracle’s, so study the support roadmaps carefully.
- Note that Oracle JDK supports a limited albeit extensive range of platforms. If you want to utilize a unified runtime that works in any environment (cloud, desktop, or server), consider using Liberica JDK with the widest selection of supported system configurations.
Costs of licensing
Let’s say you decided that you require all the benefits of paid support. How much are you actually going to pay for a Java license? It depends on the provider you choose and the number of machines you run Java on.
For example, if you stick with Oracle Java and have 15,000 desktops, you will pay $1.5 per desktop for a month, or $18 for a year, which is $270,000 total. In case you choose Liberica JDK, the price of a desktop for a year is $10, which makes the full price $120,000 for the same number of machines. This estimation is based on the prices effective in November 2022 and presented on corresponding Oracle Java SE subscription price and Liberica JDK support price pages.
In other words, the price of support differs between Oracle Java and OpenJDK distributions, and the more machines you utilize, the more money you save.
Number of desktops
$270,000 a year
$120,000 a year
To sum it up, Java licensing changes may sound exciting at first, but they go hand in hand with certain restrictions and limitations, and in the end, you will have to pay for a subscription to continue receiving updates. Think your corporate strategy through, decide whether you want Oracle JDK or OpenJDK, and in the latter case, which distribution, bearing a difference of costs in mind.
And the last thought to go. Some companies choose OpenJDK for the opportunity to use JDK builds at no cost. You are not obliged to pay for open source software as it is the philosophy of the OpenJDK project to provide all the programmers with affordable, secure, and efficient tools. But paying for commercial support doesn’t only mean keeping your runtime safe at all times. It is also a way to support the community and the Java ecosystem so that the engineers can continue dedicating their time to Java platform development.
If you are interested in switching to supported and secure OpenJDK Java distribution, feel free to contact us and ask any questions!