Oracle Java licensing has become noticeably more expensive and complex in 2023. This has mainly to...
A New Year brings new Java licensing rules. As you already know, Oracle decided to change its policies around Java beginning on January 1, 2019.
You can read an analysis of those previous changes in our 2018 articles:
- How to Prep for New Updates to Oracle Java SE 8 Licensing
- Oracle will charge for Java starting in 2019
Oracle Java licensing overview
Since Oracle bought Sun Microsystems, it expanded its pricelist to include Java SE products in a perpetual license model. Some of you may have already purchased those licenses, which came in several editions:
- Java SE - the free product, which includes JDK and JRE.
- Java SE Advanced Desktop - a license is required and is only available in the Named User Plus metric, with a 2000-minimum per company. It includes Java SE and other specific commercial features.
- Java SE Advanced - requires a license and is the same as the previous, but designed for servers, so it’s available in NUP and CPU metrics.
- Java SE Suite - requires a license, is available in NUP and CPU and includes Java SE Advanced with one specific commercial feature: JRockit Real Time Deterministic GC.
In 2018, Oracle decided to change how it licenses Java SE and offered two Java SE subscription products to keep support, patches, and security fixes on JDK.
- Java SE Desktop Subscription – a monthly subscription in the NUP metric only. Calculation rules are quite simple: 1 desktop = 1 NUP. No minimal NUP is indicated so far.
- Java SE Subscription – a monthly subscription for Servers in CPU metric only. Calculation rules are the same as Oracle Database with the same partitioning policy regarding the virtualization rules:
CPU * Cores per CPU * Core factor
Gamechanger: Oracle updates Java rules (again)
On Jan. 17, 2019, Oracle published a new Technology Price List announcing that all Java SE historical products will no longer be available. This means that there are no longer perpetual licenses for Java SE products such as Java SE Advanced or Suite. You only have access to Java subscriptions.
So, do you have a choice for support of your JDK?
No, not really.
If you already purchased some Java SE Advanced Desktop licenses, Oracle suggests contacting your sales rep to discuss what you can do.
But before opening negotiations with Oracle, I suggest that you draft a quick business case on the cost of your current maintenance versus Java SE subscription costs. Reach out to an Oracle licensing expert to support you on the complexities of this contractual subject.
Is Oracle Java free or not free?
Subscriptions to support your JDK are not the only change for the New Year. Since the beginning, many have said that you must pay for Java. While this is not totally true…it’s not totally false either.
Let me explain. JDK 8, 9 and 10 are under the Oracle Binary Code License Agreement:
“2. LICENSE TO USE. Subject to the terms and conditions of this Agreement including, but not limited to, the Java Technology Restrictions of the Supplemental License Terms, Oracle grants you a non-exclusive, non-transferable, limited license without license fees to reproduce and use internally the Software complete and unmodified for the sole purpose of running Programs. THE LICENSE SET FORTH IN THIS SECTION 2 DOES NOT EXTEND TO THE COMMERCIAL FEATURES. YOUR RIGHTS AND OBLIGATIONS RELATED TO THE COMMERCIAL FEATURES ARE AS SET FORTH IN THE SUPPLEMENTAL TERMS ALONG WITH ADDITIONAL LICENSES FOR DEVELOPERS AND PUBLISHERS.”
The main point in the BCLA is the reference to the commercial features. Oracle provides the Java SE product for free, if you are not using any commercial features.
So, if you’re using JDK 8, 9, or 10 without any commercials features usage, and you don’t want the support, you can continue without a contract and without being able to download the latest patches and security. However, the latest news regarding the version 11 release is that JDK is now distributed under the Oracle Technology Network License Agreement:
“License Rights and Restrictions Oracle grants You a nonexclusive, nontransferable, limited license to internally use the Programs, subject to the restrictions stated in this Agreement and Program Documentation, only for the purpose of developing, testing, prototyping and demonstrating Your Application and not for any other purpose. […]”
This means that if you download Java SE 11 without any contract support, you can only use JDK in a test environment.
To use it in a production environment, you must buy a Java SE Desktop Subscription for JDK deployed on desktop, or a Java SE Subscription for JDK deployed on servers. Again, no perpetual licenses, just the monthly subscription.
So, sure, Java is still free… only if you:
A) Use JDK 11 in non-production environment, or,
B) Use an older version, like JDK 8, 9, or 10, and don’t want the support or updates, or,
C) Don’t use any JDK version published after the End of Public Updates announcements (unless you have an Oracle Java contract that allows you to do so)
Just as a reminder, here are the last versions published by Oracle for old JDK:
- JDK 5 : End of Public Update in 2009 – last version available without contract : JDK 5.0u22
- JDK 6 : End of Public Update in 2013 – last version available without contract : JDK 6u45
- JDK 7 : End of Public Update in 2015 – last version available without contract : JDK 7u80
- JDK 8 : End of Public Update in 2019 – last version available without contract : JDK 8u202
Advantages of the Oracle Java subscription model
The only good news for customers is that, for now, commercial features for Java SE 8, 9, and 10 are now included in the Java SE Subscription products. So, you don’t have to upgrade and can maintain your older versions of Java SE.
I can already hear you shouting, “So now, I don’t have any problems with my commercial features usage!?!” And again, that’s not totally true.
Let’s say you have a WebLogic Server Standard license, it covers the usage for Java SE product. But are you absolutely sure that you aren’t using a commercial feature?
Beware of Oracle Java in your 3rd party programs
For every Oracle product with an embedded Java SE product, you must check the real usage of your Java regarding the restricted rights. You should apply the same strategy for the other third-party vendor that embeds or needs a Java SE product to run.
For example, both SAP and Adobe run JDK, but there might be something in those contracts that you should know, like a clause in an SAP contract that licenses your Java use.
Assess your Oracle Java risk
First things first: Stay calm! You’ll need to analyze the deployment of Oracle Java on desktops and servers, along with all your contracts. This will show you exactly what you need to buy. You need to know this when you negotiate with Oracle because some of your usage could already be covered.
Need help? Use this tool to access an online Java risk assessment that delivers a quick analysis of your compliance risk directly to your inbox.