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:
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:
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.
CPU * Cores per CPU * Core factor
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.
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:
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?
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.
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.