Posts

Java licensing changes in 2023 (updated)

Feb 24, 2022
Dmitry Chuyko
25.8

Life will never be the same

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. Although this change in theory made Java free for commercial use again, in reality the situation was not so simple.

But the Oracle Sales Team is up and doing. In January 2023, Oracle turned the tide on Java pricing again and introduced a new pricing model for Java SE Subscriptions. The new Employee for Java SE Universal Subscription substitutes the old Java Named User Plus License and Processor and will have a huge impact on businesses using Oracle Java. According to the House of Brick calculations1, a medium-sized company may experience a spike in annual Java cost by 1,400%!

This article will decipher the terms of all new licensing models present since 2019 and figure out how they affected and will affect the companies and the support prices in the future. We won’t go into legal technicalities, but will try to clarify the challenges that the developers will face based on the information provided by Oracle2 and present some ways to deal with them.

So let’s see what Oracle has in stock and how much using Java actually costs!

Java licensing conditions

When enterprises need Java licensing

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. If you use Java for personal purposes, you don’t need a Java license.

If you use Java to develop a commercial product or run applications in the cloud environment, you need to acquire a Java license. This way, you will get access to security patches and bug fixes and eliminate the risks of licensing terms violation with legal consequences.

Currently available Oracle Java licenses

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 SE3. 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.”4 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)DatesLicense
Oracle JDK 77u80, before April 2015Oracle BCL for Java SE
July 2015 and afterMy Oracle Support for Oracle customers
Oracle JDK 88u202, before January 2019Oracle BCL for Java SE
After April 2019 (the latest build is 8u321)

My Oracle Support for Oracle customers
and Oracle OTN for Java SE for Personal,
Development, and other Users

Oracle JDK 11Oracle OpenJDK before January 2019GPLv2+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 2022GPLv2+CPE for all users

Oracle JDK up to September 2024
(the latest build is 17.0.2)

Oracle NFTC License for all users
Oracle licensing summary

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.

Is Java free for commercial use?

The most important question for enterprises running Java applications: is Java free for commercial use? The answer depends on the Java version you implement.

Oracle Java versions 8 and 11 are not free for commercial use, you have to acquire a license to use them in enterprise development and receive regular security updates.

As far as LTS versions starting with Java 17 are concerned, the NTFC license grants permission for commercial use of Java builds for three years starting with the release date, but after that, the users have to move to the next LTS version or acquire a license.

How Java licensing changes affect enterprise projects

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.

Java 6 and 7

For Java 6 or 7 users, nothing changes. 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 8 and 11

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. You can check the Java roadmap to compare the support periods for Oracle Java vs Liberica JDK.

Java 17 and 21

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.

So if you currently use Oracle Java 17, there are only four months left until free updates under NFTC stop. In September 2024, you will have to decide whether you migrate to JDK 21, which has been around for a year already (so you have only two yers until next upgrade), or pay for JDK 17 updates under the OTN license.

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.

If you need more details on how using an OpenJDK build is different from using Oracle’s OpenJDK, take a look at our comprehensive comparison of OpenJDK distributions vs Oracle Java.

Costs of Java licensing in 2023

Let’s talk money! How much are you going to pay for a Java license? With OpenJDK providers it depends on the number of machines with Java installed, but with Oracle Java, not anymore.

According to the new Oracle Java SE Universal Subscription Global Price List, the number of required licenses is calculated based on the number of employees, and not just the employees actually utilizing the Java programs, but all company employees, including "all of Your full-time, part-time, temporary employees, and all of the full-time employees, part-time employees and temporary employees of Your agents, contractors, outsourcers, and consultants that support Your internal business operations."

What is more, the Java SE Universal Subscription Programs can be installed on up to 50,000 processors, not counting desktops, regardless of the number of employees. If the quantity of processors exceeds 50,000, additional licenses must be purchased.

Note that this model is applicable only for full use and not eligible for Application Specific Full Use (ASFU) licensing, Embedded Software Licensing (ESL), Independent Software Vendor (ISV) licensing, or redistribution.

For example, you have 50 servers and 250 employees including full-time, part-time, temporary employees, agents, consultants, and contractors. The price per employee within the range of 1-999 is $15/month, so the total price is $45,000/year. With 500 servers and 2,500 employees, the price per employee is $12/month, so the total annual price is $360,000.

Now, let's take the same 50 servers and 250 employees. In case you choose Liberica JDK, the price is calculated based on the number of servers. The total price is $15,000 per year. With 500 servers, the total annual price is $70,000. This estimation is based on the prices effective in November 2022 and presented on corresponding Oracle Java SE Universal Subscription Global Price List and Liberica JDK support price pages.

In other words, the price and model of support differs significantly between Oracle Java and OpenJDK distributions. The more employees you have, the more you pay for Oracle licenses.

Number of servers

Number of employees

Oracle Java

Liberica JDK

50

250

$45,000 a year

$15,000 a year

500

2,500

$360,000 a year

 $70,000 a year

How to acquire a Java license

If you need Java for personal use, you can download the Oracle JDK builds 8, 11, 17, and 21 directly from the website. If you seek commercial support, contact the Oracle Sales Team and negotiate an agreement tailored to your needs. Note that Oracle tends to perform unexpected audits and draw up the highest possible non-compliance sum. Therefore, you should be thoroughly prepared for such occasions. 

Do you need Oracle licensing?

A crucial choice to make is whether you want to pay for a license from Oracle, from another vendor, or not pay at all. All of these options are viable and depend on your needs. 

Here are some points that will help you decide on your future strategy:

Technical support

One of the main reasons people pay for a Java license is good support. As a rule of thumb, larger corporations are not the best at feedback. Issues such as long response times, unqualified help, and more lawyers than developers on the support line are common with support provided by industry giants. When working with a trusted OpenJDK vendor, you get easy access to the developers that make the software, so can promptly help resolve your issue.

Security

Most of the OpenJDK vendors release security patches and updated JDK versions almost at the same time as Oracle does with Oracle Java. This means you don’t compromise your security by using OpenJDK build, even with a free version.

Another advantage of using OpenJDK is you often get extended support for outdated versions of JDK.

Commercial features

Usually different vendors provide different features of their version of OpenJDK. In case of BellSoft, we give our subscribers access to:

Other vendors, including Oracle, provide other features that may benefit you more or less. This topic is too vast to cover in this article. If you are interested in discovering how Liberica JDK is different from its competitors, please download the white paper on the subject.

Oracle licensing on VMware

If you deploy Oracle JDK on VMware virtual servers or plan to do it, you may encounter legal complications during the Oracle audit. Oracle licensing in virtual environment is based on Oracle Partitioning Policy. This document lays down two types of virtualization technologies, soft and hard partitioning.

Hard partitioning segments a server into distinct systems that act as physically independent servers with their own CPUs. Hard partitioning allows you to limit the number of software licenses required for a server or a cluster of servers.

VMware is deemed by Oracle as a soft partitioning technology. Soft partitioning segments the OS using the resource managers. The OS creates areas with CPU resources allocated to programs within the same OS. Soft partitioning is not permitted as a means to limit the number of software licenses. In other words, you have to license the full server capacity.

So if you deploy Oracle Java on VMware platform and utilize ESXi (virtualization hypervisor) version 6.0 and up, you have to license all physical hosts in all your VMware environments.

Note that the above mentioned Partition Policy is provided "for education purposes only and may not be incorporated into any contract and does not constitute a contract or a commitment to any specific terms." It means that you have to either negotiate a clear agreement with Oracle before signing the contract or prepare a management strategy in the event of an audit.

Sounds too complicated? For us, too. The problem is that there are no clear answers when it comes to using Oracle software with VMware. We will have our ear to the ground and update this article as soon as the situation clarifies.

Risks associated with Oracle Java licensing

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. In addition, as your business grows, Java expenses will grow too because you have to acquire Java licenses for each new employee.

At the same time, the overhaul of pricing strategy in 2023 left all companies utilizing Oracle Java in confusion. What will happen next? With Oracle, nobody knows for sure, as they seem to change the license conditions every 2 years since 2019.

How licensing changes impact Oracle Java usage

As a result of Oracle’s constant updates to the licensing and pricing models, more and more enterprises don’t renew their Oracle Java licenses. As the JRebel’s 2021 Java Technology Report states, 59% developers were using Oracle Java. However, according to the 2022 State of the Java Ecosystem Report by New Relic, this number sank to 34.48%, which is a huge contrast with 75% in 2020. Oracle’s worldwide usage continued decreasing and hit 28.75% in 2023 as per the 2023 State of the Java Ecosystem Report.

Decreasing usage of Oracle Java

The best solution: migrate to OpenJDK

We believe that the best solution is to migrate to an OpenJDK distribution. You can use OpenJDK builds at no cost or receive commercial support, which is usually much more affordable than that of Oracle and is not tied to the number of your employees.

BellSoft aims to provide enterprises with the most complete Java experience. Liberica JDK, a TCK-verified OpenJDK distribution, comes with multiple additional utilities and features aimed at making your Java development efficient and secure.  

If you are interested in switching to supported and secure OpenJDK Java distribution, feel free to contact us and ask any questions!

Contact us and save your money!

  1. House of Brick Oracle Java pricing calculation
  2. Oracle No-Fee Terms and Conditions license
  3. Oracle Technology Network License Agreement for Java SE
  4. Introducing the Free Java License

Subcribe to our newsletter

figure

Read the industry news, receive solutions to your problems, and find the ways to save money.

Further reading