Oracle Java Licensing Changes and costs

Oracle Java Licensing Intro

Oracle Java Licensing Changes covering the changes in 2019 and 2021. Let us summarize what this article deals with:

  • Oracle has made several major changes to its Java licensing since 2019
  • The company is transitioning from perpetual licenses to subscription-based models
  • Oracle will no longer offer free updates for Java SE 8 or earlier, but will offer support as part of a separate subscription service
  • The Java license changes impact both Oracle JRE and Oracle JDK products
  • The article will cover the Java licensing changes in 2019 and 2021
  • It will also cover the Java license cost, whether Java licensing is free or not, and how to license in VMware.

Do you need an Oracle Java license?

  • If you are a company using the Java software platform for commercial purposes, you should review your Java licensing requirements to understand if you need to purchase a license
  • You can decide to purchase a Java license or migrate to a non-licensable JDK like OpenJDK or Azul
  • You need to determine if your usage is personal or commercial
  • Personal use means you can use Oracle products on a personal computer, not a corporate PC
  • Commercial use is no longer free starting in 2019 and may require a license, including for patching older Java with new security updates
  • There may be additional licensing considerations, such as commercial features and terms, that require purchasing a license

Is Java still free?

  • Java was never completely free, but some licensing was free before 2019
  • Most companies should have purchased a Java license in the past, but Oracle was not enforcing it
  • It is recommended to review the Java licensing agreement to understand if a license is needed
  • The specific licensing agreement to review depends on the version of Java in use

Oracle Java Licensing Agreements

  • Oracle Binary Code License Agreement
  • Oracle Technology Network License Agreement
  • Oracle No-fee Terms and Conditions (NFTC)

Oracle Java Licensing Changes 2019

  • Oracle announced that Oracle Java JDK 8 updates will require a subscription from patch 211 and onwards for Java JRE and JDK 8.
  • A new Java licensing agreement, the Java OTN SE, was introduced, prohibiting all commercial usage.
  • The old licensing agreement, BCLA, was already making many companies non-compliant. But companies were not aware that it was not completely free pre-2019.
  • These changes were announced in 2019 and went into effect in April 2020

Which version of Oracle JDK needs a license?

If you have been using Java in the past, you should study and review general-purpose definition in the BLCA, it is likely that you should have purchased a Java SE license in the past. Not only when Oracle announced updates required a license.

  • Oracle Java JDK versions 1-8 require a license if applying security patch 211 or later, unless usage is for any products listed in Schedule B
  • Oracle Java JDK versions 11-16 require a license for both clients and servers, unless usage is for any products listed in Schedule B
  • Oracle Java JDK versions 17+ currently do not require a license

Commercial Features that require a separate Oracle Java SE license:

  • Java Enterprise (MSI) Installer
  • Java Flight Recorder
  • Java Mission Control
  • JRE Usage Tracking
  • Java Advanced Management Console
  • Jrockit Mission Control, Flight Recorder, or Real Time Deterministic GC

Oracle Java Licensing Changes 2021

In 2021, Oracle made another change to its Java licensing by introducing the NFTC (Oracle No-Fee Terms and Conditions). 

  • Java for commercial use is now free, but only for versions Java 17 and onwards.
  • It is not free if you are using any of the following features in Java Java Management Service, Advanced Management Console, GraalVM Enterprise, and 24×7 support. 
  • The cost of an Oracle Java SE subscription is $25 per processor or $2.50 per user.

To summarize what this means:

  • Oracle has announced that Java is now free, but it is unclear if a subscription will be required to apply security updates to older versions (prior to Java 17)
  • Beginning with Java JDK 17, Java is free for commercial usage
  • If you are using older versions of Java (1-16), the new licensing agreement does not apply to you

How much does an Oracle Java license cost?

There are two different Oracle Java products with different pricing:

  • Java SE Desktop Subscription, which is a license for individuals accessing Java-based applications. This is priced at $2.50 per month per user.
  • It is licensed per user and not per device, and you need to review Oracle license definition “named user plus” to understand how to calculate licensing.
  • Java SE Subscription, which is a license for servers with Java installed. This is priced at $25 per month per Oracle processor, and requires calculations based on Oracle’s core factor table, virtualization policies, cloud licensing policies, and disaster recovery environment policies.

Java Licensing on VMware

If you deploy a Java JDK on a virtual server using VMware ESXi 6.0 or later, Oracle requires you to license every physical host in all your vCenters, even where Java is not installed

  • The requirements for licensing Oracle Java SE on VMware differ based on the version of VMware
  • Oracle views VMware as “soft partitioning software,” and does not offer sub-capacity licensing
  • Oracle’s licensing practices are based on VMware’s ability to move workloads between clusters, storage, and vCenters in different locations
    • In VMware 5.0, Oracle workloads can be live migrated across clusters within the same vCenter, as long as they share the same storage. This requires licensing all servers within a cluster and within the vCenter sharing the same storage.
    • In VMware 5.1, Oracle workloads can be live migrated across all clusters within the same vCenter, requiring the full vCenter to be licensed.
    • In VMware 6.0 and upwards live migration can happen across vCenters and you need to license all vCenters.

Guide for how to review your Oracle Java Licensing

To review your Java licensing position and determine if you need to purchase a license:

  1. Review your Java deployments, taking into account Oracle licensing rules and policies
  2. Check for usage of Java Commercial features
  3. Determine if any existing Oracle products included a Java license
  4. Check if any third-party software includes a Java license
  5. Review all three Oracle licensing agreements and match them to your usage

To create an Oracle licensing strategy for VMware/virtualization:

  1. Decide on a strategy for Oracle licensing in VMware/virtualization
  2. Consider procurement or migration options

Note: Some Oracle products include a restricted use Java SE license. If you own a license for one of these products, you may not need to purchase a separate Java SE license.

If Oracle contacts you to discuss your Java deployments, it is recommended to decline and perform an independent review of your Java SE licensing. You can seek the help of an Oracle license expert for advice on a licensing strategy.

Oracle Java Negotiation

It is commonly reported that the Oracle Java sales organization is difficult to work with, for the following reasons:

  • They may refuse to take orders unless they are of a certain size
  • They may refuse to take orders unless you provide deployment data for Java
  • They may involve the Oracle GLAS (audit team) in sales conversations to pressure you, although they claim it is not an audit
  • They may require you to sign a legal document declaring your deployments and methods for establishing your license position before offering a quote

To prepare for negotiating with Oracle Java sales organization:

  1. Educate yourself on how Oracle Java licensing works, including the licensing agreements for Java versions 6-8 and the BCL agreement
  2. Study Oracle’s licensing policies, particularly as they pertain to virtualization (e.g. VMware)
  3. Perform a Java license review to understand your license estate and negotiate from a position of strength
  4. If necessary, present a Java license report to Oracle and insist on only purchasing what is needed, rather than Oracle Java ULAs or employee-based metrics.

Frequently asked questions about Oracle Java licensing:

  • Why are there 3 different Oracle Java licensing agreements?
    • The first agreement applies to older Oracle Java versions and patches, the second is for Oracle Java 11-17, and the third applies to Java 17 and beyond.
  • Do I need a license for Oracle Java 8?
    • It depends on your usage and the terms of the applicable licensing agreement.
  • Who is responsible for ensuring compliance with Oracle Java SE when using a third-party application that requires it?
    • It may be the responsibility of the end customer or the third-party application, depending on the terms of the agreement.
  • Do OEMs or ISVs have agreements with Oracle for Java?
    • Some OEMs have such agreements, but they are usually larger software companies that have had them in place for a long time. Smaller ISVs are less likely to have such agreements.
  • Do I need a license for Oracle Java SE commercial features?
    • The need for a license may be determined by the terms of your licensing agreement, your IT security policy, or the application of security patches.
  • Do I need a license for non-production use of Oracle Java SE OTN?
    • It is free to develop your own solutions using Oracle Java in a non-production environment, but it is not allowed to run third-party applications or production environments without a license.
  • How can I purchase Oracle Java SE licenses?
    • Oracle Java SE licenses are available for purchase through a volume-based price list, with no discounts outside of those publicly available

Is Oracle Java SE subscription per physical core or per logical core?

Oracle Java SE subscriptions are typically purchased on a per physical core basis. However, Oracle does offer sub-capacity licensing options for Java SE for some virtualization technologies.

Can I use Oracle Java SE without a license?

It depends on the version of Oracle Java SE you are using and the purpose of your usage. Oracle has announced that beginning with Java SE 17, commercial use of the software will be permitted without a license. However, for earlier versions of Java SE, a license may be required for commercial use.

In addition, Oracle allows certain types of personal use of Java SE without a license, such as using the software on a personal computer for non-commercial purposes. However, if you are using Java SE for any type of commercial or enterprise use, you should review the applicable licensing agreement to determine if a license is required.

I have heard that Oracle is no longer offering free updates for Java SE 8 or earlier. Is this true?

Yes, Oracle announced in 2019 that it would no longer offer free updates for Java SE 8 or earlier versions of the software. Instead, Oracle will offer support as part of a separate subscription service. This means that if you are using an older version of Java SE and want to receive updates and support from Oracle, you will need to purchase a subscription.

Is Oracle Java SE OTN free for non-production use? 

Oracle allows ISVs and partners to test and develop their prototype solutions using Oracle technology without needing to purchase a Java license. However, it is not allowed to run third party applications or have a production environment using Oracle Java SE OTN without a license, unless you own the IP.

How can I purchase Oracle Java SE licenses? 

Oracle has a volume-based price list that is available to the public. There are no discounts available outside of those listed on the price list. Alternatively, you can purchase Oracle Java SE through an Oracle Unlimited agreement, but these can be expensive and may cost more than €1 per year.

Do I need a license for the Java Development Kit? It is possible that you may need a license for the Java Development Kit. Review the applicable licensing terms for the specific version you are using to determine if you need a license.

Does Oracle conduct audits for Java licenses? 

Currently, Oracle does not include Java in its license audits. However, this could change if Oracle experiences declining revenue from Java. It is always advisable to review your licensing position to ensure compliance.