Since the announced changes regarding the Oracle Java Licensing update, there has been a lot of buzz around this topic among all types of organizations, regardless of their size. Over the last couple of months, we’ve encountered many questions:
- Can I continue to use Java SE for free?
- What about receiving support and updates?
- Binary Code License Agreement or Technology Network License Agreement?
- JDK or OpenJDK?
- Am I allowed to distribute Java SE?
Confusion and uncertainty govern the life of most Software Asset Management professionals lately, but it doesn’t have to remain that way. In this article we will provide clarity around the “fogginess” related to this this new era of Java licensing.
Oracle Binary Code License Agreement for Java SE and JavaFX products
Oracle continued to offer the use of Java SE for free under the so-called Oracle Binary Code License (OBCL) agreement, since it acquired Sun Microsystems. This use was restricted and free, only if certain conditions were met.
A short summary of the most important terms of the OBCL agreement is listed below:
- You can use the components of Java Standard Edition (e.g. JDK, JRE, JavaFX, JRockit JDK) internally within your organization for running your applications (either your in-house developed or third-party application), without any license requirement. As long as the Java Standard Edition components are being used on General Purpose Desktops or Servers.
- You are allowed to use commercial features (e.g. Java Flight Recorder, Java Mission Control) for the purpose of designing, developing and testing your programs (e.g. your in-house developed application), without any license requirement.
- You are allowed to distribute the Java Standard Edition software components, as long as you do not modify or remove any component of it. In addition, you need to make sure that the end user agrees and complies with the standard OBCL agreement.
- You are not allowed to create, modify or changeany behaviour of the classes, interfaces or sub packages.
The above restrictions as part of the OBCL were, and continue to be, applicable for Java version 10 and all prior versions. PLEASE NOTE: Changes to version 11 listed below.
Oracle Technology Network License Agreement for Oracle Java SE
As of Java version 11 (more precisely the release of JDK 11), Java Standard Edition is no longer available under the OBCL agreement. Instead, the use rights (and associated restrictions) are governed by the Oracle Technology Network (OTN) license agreement.
Here are the most important terms of the OTN license agreement, in comparison to the OBCL agreement:
- You can (still) use the components of Java Standard Edition (e.g. JDK, JRE, JavaFX, JRockit JDK) internally within your organization. However, under the OTN license agreement you can only use the Java Standard Edition for the purpose of developing, testing, prototyping, and demonstrating your application.
- You no longer need to make any differentiation between General Purpose Computers and/or Servers vs Non General Purpose Computers and/or servers.
- Using the commercial features for any data processing, business, commercial, or production purposes is not allowed under the OTN License Agreement.
- You are not allowed to distribute, give or transfer the Java program to any third-party.
- You are not allowed to remove or modify any Java program.
As with all other Oracle programs, if you want to use the Java program for any purpose other than those expressly permitted under this OTN License Agreement, then you must obtain from a valid license under a separate agreement permitting such use.
What are the licensing models for Java?
Historically, Oracle sold three different commercial licenses for Java, including:
- Java SE Advanced
- Java SE Advanced Desktop
- Java SE Suite
These programs were sold on a Named User Plus and/or Processor metric (Java SE Advanced Desktop was only licensed on a Named User Plus metric) in which you paid a net license and net support fee. As of January 2019, this licensing model is no longer available. Instead, Oracle will only make its Java Standard Edition programs available through so called subscriptions: Java SE Subscription and/or Java SE Desktop Subscription.
Oracle’s JDK vs Oracle OpenJDK
Up until Java 11, you could download Oracle’s JDK and use it for either production use with paid support or non-production use for free. Starting with Java 11, Oracle introduced two different JDK builds:
- Oracle JDK (commercial) – free as long as you don’t use it in a production environment. You will receive updates and support.
- Oracle OpenJDK (open source) – free in any environment, like any open source library. When it comes to getting the latest updates, you’ll always have to update the software with the newest version.
Oracle JDK and Oracle OpenJDK are the same from a functionality perspective. From a technical support perspective there is a difference. Oracle will provide you security patches and/or updates for the Oracle JDK whereas the Java community will provide you with these for the Oracle OpenJDK version. Many end-users are thinking of moving to OpenJDK instead of Oracle’s paid version. The question you have to consider is how much time and energy will it take your organization to continuously update/upgrade your versions of OpenJDK?
Conclusion on the Oracle Java Licensing Update
Java Standard Edition version 11 (including JDK, JRE, JavaFX, JRockit JDK) will continue to be available for free as long as it is used for developing, testing, prototyping, and demonstrating your in-house developed application(s). In case you are using the Java Standard Edition for any data processing, business, commercial, or production purposes, then such use of Java 11 is required to be licensed. As an alternative you can decide to start making use of OpenJDK, but the responsibility lays within your own organization to continuously apply software updates with the newest version. The commercial (Perpetual) licensing models from Oracle will no longer exist; instead Oracle will provide the right to make use of specific commercial features and will deliver its support services under subscriptions: Java SE Advanced and Java SE Advanced Desktop subscriptions. JavaFX will be no longer included into JDK and will become Open Source.
Want more information? Contact us today to get better insight into your current Java situation.