5 common compliance risks licensing Java 

#2: using Java software to run programs on non-general-purpose computers or servers

Oracle Java Licensing

The fuss around licensing Java

Many organizations use Java for different kinds of applications and development scenarios. They often are under the impression that Java software can be deployed “for free” at all times. Lately organizations are confronted with compliance issues and unexpected costs as they don’t fully understand the restrictions of the Java SE Platform software license. Also, Oracle has released new support policies that force customers to upgrade more frequently or keep older versions (with no or paid support). To make it even more complex, certain Oracle programs include a ‘full use’ or ‘restricted use’ license for Java’s commercial features, which adds the challenge to understand whether and to what extent you are covered for the usage of Java.

The complexity around Java makes many Oracle end users worry about the compliance risks related to licensing Java. That’s why we will address this topic in our article series over the coming weeks and will share our experiences assisting customers to manage their license entitlements and deployments. The compliance risk we will cover in this article is related to the question whether you use the Java SE Platform software to run programs on non-general-purpose computers or servers.

Definitions included in the Oracle Binary Code License Agreement

  • “Programs” mean Java or JavaFX technology applications and applets intended to run on Java (FX)-enabled General Purpose esktop Computers and Servers.
  • “General Purpose Desktop Computers and Servers” mean computers (including desktop and laptop computers, or servers) which are used for common computing functions under end user control. Examples of these functions would be e-mail, general purpose Internet browsing, and office suite productivity tools.
  • Any usage of Java SE software which does not meet the conditions of “General Purpose Desktop Computers and Servers”, is by definition “Non-General-Purpose Computing Usage” and requires to be licensed separately.

Running programs on non-general-purpose computers or servers

Lately, we’ve come across customers who are confused by the above definitions. Programs that you design and develop may have a specific purpose but the device on which the software is installed has to be for a general purpose.

For example, one of our customers was under the impression that “General Purpose” refers to the programs developed internally and was concerned about the licensing implications. Programs developed in Java will always have a specific purpose. However, the definition refers to the devices and systems on which the software is installed to run such programs. In our example, due to the fact that the machines were not used for a specific purpose, no license was required.

Oracle’s license for Java SE enables it to be freely used for general purpose desktops or servers. If Java SE is bundled as part of a dedicated solution that involves or controls hardware of some kind, then it’s likely an embedded application and it is subject to modest royalty payments.