The short answer: Oracle Java has moved, step by step, from free to paid. Since 2019 most updates of Oracle’s own JDK have needed a licence for business use; since January 2023 that licence is priced per employee; and each long-term release is now free only for a fixed period. Oracle JDK 21 updates stopped being free for production use after September 2026, and Oracle JDK 25 is planned to follow in September 2028. Free OpenJDK builds remain an option throughout.
Java license changes, year by year
| When | What changed | Source |
|---|---|---|
| September 2017 | Oracle starts publishing OpenJDK builds under the GPL with the Classpath Exception, on a six-month release cycle | Oracle Java SE Support Roadmap |
| April 2019 | Oracle JDK 8 updates from 8u211 come under the OTN licence: free for personal use and development, not for running a business | Oracle Java SE Licensing FAQ |
| September 2021 | Oracle introduces the No-Fee Terms and Conditions (NFTC), starting with JDK 17: free for all users, including production | Oracle Java SE Licensing FAQ |
| January 2023 | The Java SE Universal Subscription is priced per employee, counting every employee and contractor, not just Java users | Oracle Java SE Universal Subscription price list |
| September 2024 | Oracle JDK 17 updates after 17.0.12 move from the NFTC to the OTN licence | Oracle Java SE Licensing FAQ |
| September 2025 | Oracle JDK 25 is released under the NFTC | Oracle Java SE Support Roadmap |
| September 2026 | Oracle JDK 21 updates after 21.0.12 move from the NFTC to the OTN licence | Oracle Java SE Licensing FAQ |
| October 2026 | New price list: flat yearly prices below 3,000 employees, and US$10.50 to US$5.25 per employee per month from 3,000 up | Price list of 8 October 2026 |
| September 2028 (planned) | Oracle JDK 25 updates move from the NFTC to the OTN licence | Oracle Java SE Licensing FAQ |
Oracle’s licensing FAQ and support roadmap were both updated on 20 October 2026. Our Java license review checks which of these rules apply to each Java installation you run.
What Changed?
The question in the minds of many people is
- Why is there a discussion on Java licensing?’
- Isn’t Java a language, is it not free?
- What has changed?
The Change
Oracle made an announcement in September 2017 that practically meant:
- Oracle will no longer release the Java platform (Java SE) under the free Binary Code License Agreement.
- Oracle will ship OpenJDK under GPL2 from JavaSE 9
- Oracle will increase the release cadence to six months instead of two years for Java SE
- Oracle JDK (Java SE) will be available under the OTN agreement. This does not allow commercial use.
- Customers will have to procure Java SE licenses from Oracle for commercial use. Security updates for Java SE will be provided only to commercial customers. Latest Oracle OpenJDK releases will be provided with the security updates in the release cadence.
What does this mean for customers?
- Customers should review their internal usage of Java for legal and commercial risk.
- Customers will need to implement regular updates instead of being on the same Java version as earlier. This is both costly and has execution challenges
- Customers should re-evaluate their strategy on using Oracle Java or other Java distributions.
Read all about the technical components, different distributions,
how to review your usage & other aspects of Java licensing,
What is Java?
Java is:
- A programming language
- A software platform to run programs written in Java language
There are many versions of the platform – the original from Sun (now Oracle) released in September 1995; from IBM, Amazon, Azul, Redhat, Bellsoft, Microsoft etc)
The Sun/Oracle version is the most popular as it was the original release.
Components of Java
The different components of Java are given below. We have also tried to clear confusion on duplicity in the naming of the components (eg: Java SE & JDK)
- JVM
Java Virtual Machine
The JVM is an abstract machine that enables your computer to run a Java program.
The JVM makes Java a ‘platform-independent language’. When you write Java code, it is written to be executed in the JVM and not the specific computer (physical machine). - JRE
Java Runtime Environment
This is an implementation of the Java Virtual Machine & containing additional components and core libraries to run applications and applets written in Java. - JDK
Java Development Kit
It is a bundle of software that is used to develop Java programs. Contains the Java compiler, the JRE, API Classes & additional files to write Java programs.
Different versions available are: Oracle JDK, OpenJDK, AzulJDK etc. - Java SE
Java Standard Edition
This is the Oracle supported Java platform. Interchangeably used with Oracle JDK - Java 2 Platform
Second generation Java Platform
The first generation Java Platform was called JDK, the second generation is Java 2 Platform. The name change happened in 1998. (from JDK1.1 to J2SE1.2). The name further changed to Java SE in 2006 (still called the Java2 Platform).
Components of Java – Graphical View
List of JDKs Available
| Oracle JDK (Java SE) | Azul Zulu |
| Oracle OpenJDK | IBM Eclipse OpenJ9 |
| AdoptOpenJDK | Red Hat OpenJDK |
| Amazon Coretto | SapMachine |
| Liberica | Sun HotSpot |
2018-19 Distribution of JDKs Used
- Oracle JDK: 70%
- Open JDK: 21%
- Eclipse OpenJ9/IBM J9: 4%
- Azul: 1%
- Android SDK: 2%
- Other: 1%
- None: 1%
Summary of Oracle Java License Agreements
Given below is a very brief and quick summary of the different licenses from Oracle for Java, the usage rights and implications for customers. Please note this is not legal advise & you should proceed with caution after taking legal opinion.
| License Name | License Rights Summary & Implications |
|---|---|
| Binary Code License (BCL) |
|
| OTN Agreement for Java | This is the current non-commercial license for Java: Oracle Technology Network License Agreement for Oracle Java SE
|
| GPL2 with classpath exception | Oracle provides the Oracle OpenJDK under GNU General Public License, version 2, with the Classpath Exception. This license allows:
|
JavaScript, JSP, JavaBeans, J2EE ???
There is confusion with different terminologies and jargon used with reference to Java in the IT industry.
Some of them are clarified below.
| Program/ Terminology | What is it? | Java Commercial License Needed? |
|---|---|---|
| Javascript | It is a front-end development coding language. It’s not part of the Java platform | No |
| JavaBean | JavaBeans are classes that encapsulate many objects into a single object (the bean) | Yes |
| Applet | An applet is a Java program that can be embedded into a web page. Oracle deprecated this in Java9. Most browsers do not support applets currently. Chrome discontinued in 2015, Mozilla dropped it in 2018, Microsoft Edge does not support it. It is only available on MS Internet Explorer | No |
| Java 2 Platform | JDK was first generation platform. Java 2 Platform is second generation. | Yes |
| JInitiator | Oracle’s JRE on client to run Forms in Internet Explorer | No |
What Should Customers Do?
1 Java Discovery
Identify where Java is installed in your environment. Conduct a discovery across all the servers and desktops. Prepare an inventory of the Java version, executable path and the application for which it is used.
2 Normalize Java Installs
Normalize the Java versions into the different agreements from Oracle and other publishers. Classify the Java installed into BCL, OTN, Oracle Commercial, Azul, IBM, Redhat, AdoptOpenJDK, Amazon Coretto etc.
3 Analyze Java License
Assess the license requirement for each application based on publisher partnership with Oracle & Oracle’s approved product list. Also check the usage of commercial features of Java being used (especially) in the BCL versions.
4 Strategize Java Needs
Conduct an optimization exercise for currently installed Java deployments. Formulate an enterprise-wide strategy for Java deployments from Oracle & other publishers based on security, cost, and flexibility parameters.
Java Licensing FAQ
Is Java Still Free?
Yes and no. Oracle JDK 25 is free for all users, including production, under the NFTC until September 2028, and so are Oracle JDK 21 up to update 21.0.12 and Oracle JDK 17 up to update 17.0.12. Later updates of 21 and 17, and current updates of 11 and 8, need a licence for business use. That licence is either bought as a Java SE Universal Subscription or included with certain Oracle products, for use with those products only.
There are free distributions of Java also available. One example is Oracle’s OpenJDK builds; others include Eclipse Temurin, Amazon Corretto and Azul Zulu.
What are the old & new Oracle Java License Agreements?
Binary Code License (BCL) for Oracle JDK
This was the old agreement from Oracle for Java. Under this license Java could be used without paying money to Oracle except for certain commercial features.
OTN Agreement for Java for Oracle JDK
This is the new license from Oracle for Java. Under this license, Java has to be licensed commercially.
GPL2 for Oracle OpenJDK
This is the license under which Oracle releases the open-source version of the JDK. It is known as Oracle OpenJDK.
Java License Check Tool Java License Analyzer helps you understand your deployment
Read more about the Java License Analyzer here
Oracle License Expert
Read more about our Managing Partner, Sheshagiri Anegondi. He is amongst the foremost Oracle License Experts globally.
An audit letter, a renewal quote or a ULA end date on your desk? We check what Oracle, Microsoft, IBM or Broadcom is claiming, work out what you owe under your contract, defend against audits, and negotiate the rest down.
