Java

Java

Understand Java Licensing

Oracle’s Java licensing changed from January 2019. 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.

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?
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.
The Change
  • 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 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
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
  • Open JDK
  • Eclipse OpenJ9/IBM J9
  • Azul
  • Android SDK
  • Other
  • None

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?

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

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

Licensing Oracle is a division of Rythium Technologies LLP.

https://rythium.com/license-training/

Menu