5 common compliance risks licensing Java
#1: modifying Java SE platform
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 modify the Java SE Platform software to run, design, develop or test programs.
Run, design, develop and test programs developed in Java
Oracle grants you a limited license (for which you don’t have to pay license and support fees) to reproduce and internally use the Java platform software complete and unmodified for the sole purpose of running programs developed in Java. Additionally, you are granted a limited license (for which you don’t have to pay license and support fees) to reproduce and internally use the Java platform software complete and unmodified for the purpose of designing, developing, and testing your programs developed in Java.
Modifying Java software
According to this, you can reproduce and internally use the Java software as long as you do not modify it to run any applications written in Java. This also includes applications written by third parties.
Let’s look at the following scenario:Your organization has developed an application in-house for the internal use of your company. For that, you modified some class libraries which are part of the Java Runtime Environment (JRE) package. These modifications are saved in customized .jar files. When your end users start using your application, they are required to download the customized .jar files and overwrite the standard ones from their JRE installation. What does it mean? It means that you violate the Oracle Binary Code License Agreement.
When it comes to designing, developing or even testing programs written in Java, you are allowed to do so using the components of the Java SE Platform, but only for programs developed by you. In other words, the license prohibits you from using Java SE Platform components to modify or reverse engineer Java programs written by other companies.