Oracle Java licensing the new agreements might have an impact on your pocket

Oracle Java Licensing

Since the announced changes regarding the Oracle Java licensing update, there is a lot of buzz around this topic among all types of organizations, regardless their size. Over the last couple of months, we’ve got a lot of questions such as 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  SAM professionals lately, but it doesn’t have to remain like that. In this article we will provide clarity around the “fogginess” related to this this new era of Java.

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 for 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 change any behavior 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. But as of version 11, something is changing.

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.

A short summary of the most important terms of the OTN license agreement, in comparison with the OBCL agreement, are listed below.

  • 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. The big difference is that, in case you are using the Java Standard Edition for any data processing, business, commercial, or production purposes, then such use is NOT allowed under the OTN License Agreement.
  • You do not need to make any differentiation anymore between General Purpose Computers and/or Servers vs Non General Purpose Computers and/or servers. This distinction is no longer made under the OTN License Agreement.
  • You are (still) allowed to use commercial features (e.g. Java Flight Recorder, Java Mission Control) for free as long as you are using these features for the purpose of developing, testing, prototyping, and demonstrating your in-house developed application. In case you are using the commercial features for any data processing, business, commercial, or production purposes, then such use is NOT allowed under the OTN License Agreement. This is similar as how it was under the OBCL agreement.
  • You are not allowed to distribute, give or transfer the Java program to any third-party. This is another big difference, since you were – under some conditions – allowed to distribute the Java Standard Edition programs to third-parties under the OBCL agreement.
  • You are not allowed to remove or modify any Java program. This is similar as how it was under the OBCL agreement.

As it is with all other Oracle programs, if you want to use the Java program for any purpose other than as expressly permitted under this OTN License Agreement, then you must obtain from Oracle or an Oracle reseller a valid license under a separate agreement permitting such use.

What are the costs for Java Standard Edition?

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. This licensing model will no longer be available as off January 2019. Instead, Oracle will only make its Java Standard Edition programs available through so called subscriptions: Java SE Subscription and/or Java SE Desktop Subscription.

The following pricing will be applied by Oracle for the Java subscriptions:

Oracle’s JDK vs Oracle OpenJDK

Until Java 11, you could download Oracle’s JDK and use it for either production purpose with paid support or non-production purpose for free. Starting with Java 11, Oracle introduced two different JDK builds:

  • Oracle JDK (commercial) – it is free as long as you don’t use it in production environment and you will receive updates and support
  • Oracle OpenJDK (open source) – it is free in any environment, like any open source library but when it comes to updates, Oracle will not provide you updates for previous versions. You’ll always have to update the software with the newest version if you want the latest updates.

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 where-as the Java community will provide you this for the Oracle OpenJDK version. Many end-users are thinking of moving to OpenJDK instead of Oracle’s paid version. The question is though, how much time and energy will it take your organization to continuously update/upgrade your newer versions of OpenJDK?

Conclusion on 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 lay within your own organization to continuously put through the updates of the software with the newest version if you want the latest updates. 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.

The recent changes may have a huge impact on how you run your applications and/or your business. Do you want to avoid surprises in the future and better understand what options you have? Read out whitepaper “Licensing Oracle Java – An overview of the risks you should be aware of” to be prepared and stay ahead of the game.

Also read our other subject related whitepapers.