Java SE licensing


There are several good blogs about this subject (like this one), and I never paid much attention to Java and licensing. Until one of our customers became a bit frightend after Oracle approached them with the question if they were really license compliant using Java. For many the words Java and licensing doesn’t belong in one sentence.  So I am obliged to give our customer a proper answer and gave it a bit more attention by writing this blog. What’s this about licensing Java.

Let’s start with the license terms, the Oracle Binary Code License Agreement.  Java SE license consists of two parts. The standard Java SE is still free to use , the commercial components are not:

Oracle grants you a non-exclusive, non-transferable, limited license without license fees to reproduce and use internally the Software complete and unmodified for the sole purpose of running Programs.THE LICENSE SET FORTH IN THIS SECTION 2 DOES NOT EXTEND TO THE COMMERCIAL FEATURES….. restricted to Java-enabled General Purpose Desktop Computers and Servers

What ‘General Purpose Desktop Computers’ exactly is, is exlained here, in a blog of B-Lay. An excerpt:

Personal computers, including desktops, notebooks, smartphones and tablets, are all examples of general-purpose computers. The term “general purpose computing” is used to differentiate general-purpose computers from other types, in particular the specialized embedded computers used in intelligent systems.

The Licensing Information User Manual (about 247 pages needed to eplain Java licensing…) is trying to give more information about what is free and what’s not, but doesn’t give much clarity.

The Java Command line option page is quite clear about it. Using the following flag unlocks commercial features:


Use this flag to actively unlock the use of commercial features. Commercial features are the products Oracle Java SE Advanced or Oracle Java SE Suite, as defined at the Java SE Products web page.

If this flag is not specified, then the default is to run the Java Virtual Machine without the commercial features being available. After they are enabled, it is not possible to disable their use at runtime.

As an example

java -XX:UnlockCommercialFeatures -XX:+FlightRecorder

Another way to split what commercial or not is to look at  the pricelist.

Three paid packages are mentioned: Advanced Desktop, Advanced, and Suite.

But how do you know what you’re hitting, what commercial product is in what version, unlocked by the parameter ‘ XX:+UnlockCommercialFeatures ‘ . This can be derived from  the Oracle technology price list supplement (for partners),on page 5 of the  Licensing Information User Manual:


But what’s free to use:

  • JDK (Java Development Kit)
  • JRE (Java Runtime Environment)
  • SDK (JavaFX Software Development Kit)
  • JavaFX Runtime
  • JRockit JDK





Oracle binary code license agreement:

Official Oracle licensing doc:

Aspera blog :

Java command line option page:

Oracle pricelist:

B-Lay java licensing:

Other sources:

About Author

Job is a solution architect at AMIS Services with a special interest in Oracle licensing, High Availability architectures and managing complex (Oracle) environments, which includes Cloud environments. With a background as Oracle developer, DBA, team-manager and license-consultant he is able to utilize the Oracle technologies to a cost-efficient architecture for his customers. He is regularly involved in consultancy regarding: - Unlimited License Agreements (ULA). - License compliancy-checks and advice regarding optimizing the environment. - Second opinions. - Education / presentations about licensing and managing your infrastructure in the most cost-efficient manner. Twitter: @jobaclenl

Leave a Reply