Java licensing - The basics


Java licensing is still something that many organizations are struggling with.
We also see that Oracle is asking customers before they purchase licenses
that they are correctly licensed.

I want to write a easy guide for how to manage and review Java licensing.

There has been two major changes to Java licensing.
2019 Oracle made public updates not available to the public, that means
that customers who wants to have security updates for java 8 would
require to purchase a subscription / license from Oracle.

However, what most companies had overlooked is that Java has had a licensing agreement that only
allowed for some usage pre 2019. The free usage is described in the licensing agreement
BCLA (Binary code licensing agreement) the free usage is limited to internet browsing
and office suite productivity tools. It can be quity tricky to get the details correct.

This means that regardless if you need security updates, you most likely needed a license before 2019
However, Oracle has not been auditing Java which is why most organizations had not purchased
a Java license.

In 2019 Oracle released a new license agreement, named Java OTN and it covers Java 11-16 versions
and older versions of Java if you applied a security patch released after April 2020.
In this new license agreement, no free usage is allowed.

In 2022 Oracle released Java 17 under a new license agreement, now making Java completely free again
but only for Java 17 and onwards.


1. Review which versions of Java that are deployed in your corporation
2. Match the Java deployments to the specific licensing agreement
3. Contact Oracle to purchase either a volume purchase or a Java ULA if you are a large customer.
4. You may find that most of your Java deployments are not in use, and have simply been deployed
because your IT staff thought it was free.
5. Some customers remove Java, other companies also migrate to free Java (OpenJDK)