Understand Java License Changes

Everything you want to know about Oracle’s Java License Changes and how it affects you

[us_single_image image=”7235″ size=”medium” align=”center”]

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 d in September 2017 that practically meant:

  1. Oracle will no longer release the Java platform (Java SE) under the free Binary Code License Agreement.
  2. Oracle will ship OpenJDK under GPL2 from JavaSE 9
  3. Oracle will increase the release cadence to six months instead of two years for Java SE
  4. Oracle JDK (Java SE) will be available under the OTN agreement. This does not allow commercial use.
  5. 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?

  1. Customers should review their internal usage of Java for legal and commercial risk.
  2. 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
  3. 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).
[vc_empty_space height=”20px”]

Components of Java – Graphical View

[us_single_image image=”9741″ size=”medium_large” align=”center”]
[vc_empty_space height=”20px”]

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
[vc_empty_space height=”20px”]

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 Infrastructure
  2. 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
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?


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.

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.


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.

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

Java License Check Tool
Java License Analyzer helps you understand your deployment

[us_single_image image=”12788″]

Read more about the Java License Analyzer here

Oracle License Expert

You might want to read more about our CEO Sheshagiri Anegondi (Sheshu). He is amongst the foremost Oracle License Experts globally.