Java License Audits

Understand Java Licensing & Java License Audis

Oracle’s Java licensing changed from January 2019 for their JDKs. Oracle changed the licensing metric in January 2023. It moved from a ‘free’ product to a more constrained license that can put users at a non-compliance risk.
Here is a brief on the changes to Java licensing and how it affects you.

[us_single_image image=”11979″ size=”full” align=”center”]

What Changed?

The question in the minds of many people is

  • Why is there a discussion on Java licensing?’
  • Why is Oracle conducting Java License Audits?
  • Isn’t Java a language, is it not free?
  • What has changed?
What does this mean for customers?
  • Oracle are discussing Java License Audits with most of their 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.
The Change
  • Oracle will no longer release the Java platform (Java SE) under the free Binary Code License Agreement. (first non-BCL release in April 2019)
  • Oracle brought in the OTN Agreement for Java in 2019 (this has commercial implications)
  • Oracle made Java free again from Java SE 17 by bringing in the No Fee Terms & Condtions (NFTC) agreement in September 2021
  • 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) under the OTN does not allow commercial use.
  • Customers will have to procure Java SE licenses from Oracle for commercial use for licenses under OTN. 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 is Java, JDK, etc?

Understand the technical components of Java, the naming jargon, and the different licensing agreements

What is Java?

Java is:

  • A programming language
  • A software platform to run programs written in Java language

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).


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.


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

[us_single_image image=”11978″ size=”full” align=”center”]

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

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) 1.Oracle used to release OracleJDK or JavaSE under the BCL agreement.
2.Oracle provided a license to use Java ‘without license fees’
3.The license allowed customers to use Java SE for internal commercial use, reproduce and distribute the software, distribute redistritubutables, development of programs.
4.Certain commercial features of Java (like JRockit Mission Control etc) could not be used without paying a license fee.
OTN Agreement for Java This is the current non-commercial license for Java: Oracle Technology Network License Agreement for Oracle Java SE
1.Java SE can be used for
1. Personal Use
2. Development Use
3. As part of certain ‘Approved’ Oracle products
4. As part of Oracle Cloud Infrastructure2.Java SE cannot be used for internal commercial use without paying license fees separately to acquire such rights.
3.Java SE cannot be redistributed without a specific license from Oracle
No Fee Terms & Conditions (NFTC) 1. The NFTC is the license for Oracle JDK 17 and later releases.
2. The license allows for free use for personal, production and commercial use.
3. There is no click through license so automating downloads of it has never been easier.
4. Oracle has stated that NFTC will be used for Java SE 17 and all later LTS releases
GPL2 with classpath exception Oracle provides the Oracle OpenJDK under GNU General Public License, version 2, with the Classpath Exception. This license allows:
1.Use of OpenJDK for any purpose (freedom0 of the GNU philosophy)
2.Copying and distribution of the OpenJDK source code (with attribution)
3.Oracle has allowed with the classpath exception the use of modules that are deemed incompatible with GPL2.

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?


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.


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.


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.


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 is the correct answer. If you use the latest versions of Oracle’s Java SE you need to have a license. This license can be either purchased separately for Java SE or as an ‘included product’ in certain Oracle products.

There are free distributions of Java also available. One example is Oracle’s Open JDK. Another is Azul’s 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 license from Oracle for releases after January 2019 till September 2021. Under this license, Java has to be licensed commercially.

No Fee Terms & Conditions (NFTC)
This is the new license from Oracle for Java SE 17 and later LTS releases. Under this license, Java is free for production and commercial use.

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.

You might want to read more about our CEO Sheshagiri Anegondi (Sheshu). He is amongst the foremost Oracle License Experts globally. Contact him or our other Oracle license experts to know the details of Java license changes, Java License Audits and  the Java cost to pay for.

While Java license changes are the hottest Oracle Licensing issues just now, we also do work on Oracle ULAs, Audit Defense and Vendor Management.

Read this if you want to know the 12 steps for ULA Certification. Read here