Oracle Java licensing has experienced significant changes in recent years, particularly beginning in April 2019. A concise history and overview of the licensing updates are provided below, without delving into the technical and contractual specifics of each licensing framework.

Oracle Technology Network License Agreement for Oracle Java SE (Java OTN License).
Oracle’s OTN licensing scheme is meant for licensing coverage for non-commercial use. The Java OTN license terms can be read here: Oracle Java SE License.
There is also some limited commercial use coverage for certain programs under Schedule A & B programs – these are Oracle programs that include Oracle Java for related use only, and Oracle Java included with these programs may not be used for other purposes. The Schedule A & B products per Oracle’s OTN agreement are as follows:
Oracle Approved Product Use List for the OTN License Agreement for Java SE

In summary:
- OTN allowance is restrictive and does not permit any production usage.
- Schedule A & Schedule B products may leverage Oracle Java under OTN rules. Worth noting for Schedule B is that the coverage extends to usage of any higher-level products too, even if that’s not explicitly stated in the table above. For example, Oracle Business Intelligence (OBI/OAS) and Identity Management products run on WebLogic application server. The use of Oracle Java to support OBI/OAS and Identity Management products would be automatically covered through Schedule B above.
- A very critical point to keep in mind about OTN licensing in case you are dealing with aggressive Oracle Sales or auditors – the mere presence of Oracle Java under OTN license rules does not automatically require a license. To exceed the OTN allowances, you must actually use it in an unapproved manner, and the mere presence of Oracle Java does not trigger a license requirement.
Pre- April 2019.
Oracle acquired Sun Microsystems, and along with it, Sun Java, in 2010. From there on, Oracle Java was, to a great extent, “free” for commercial usage. This was covered by the Binary Code License (BCL For Java SE (oracle.com) but allowed only “general purpose computing” with limitations on embedded applications (these required a separate agreement). Also, during this phase of licensing, there were some Java commercial features (like “Java Mission Control”, JRockit and others) that required a commercial Oracle Java license. However, measuring and tracking usage of these features was complex and generally not of much licensing interest to Oracle’s licensing team.
During this phase, Oracle Java was licensed on the “Processor” metric – this applied to desktops and servers. During this phase, as far as we have seen, Oracle did not perform any formal Oracle Java license audits.
April 2019 License change.
This was the major change that caught many Oracle Java users by surprise. With this licensing regime, all Oracle Java – including JDK and/or JRE – required a commercial license, unless covered by OTN licensing allowance (OTN allows for Oracle Java usage for personal and evaluation use). This coincided with Oracle Java v8 Update 211. Oracle Java v8 Update 202 was the last “free” version. Oracle Java v8 Update 211+, including Oracle Java v9 – v16, required a commercial license for most use cases.
With this change, Oracle retired the previous “Processor” licensing metric for all environments, and introduced new licensing metrics as follows:
- Oracle Java SE Desktop Subscription: Applies to desktop users. While this generally correlates with desktop instances, they key point to consider is that it applies to desktop users. So, if several users are accessing a single desktop, they all need to be counted separately as requiring a Java SE Desktop subscription. Often, the number of desktops is counted for determining the number of licenses required, but this may be misleading or insufficient.
- Oracle Java SE Subscription: Applies to server deployments and is licensed on the Oracle “Processor” license metric. The “Processor” is very common for Oracle Database and Middleware programs and is dependent on the number of cores the Oracle program is running on. In the case of virtualized environments (like VMware), cluster- and farm-level cores may need to be counted. The topic of Oracle licensing in virtualized environments is an involved topic we have covered in previous blog posts, but the concepts and challenges apply here directly.
This licensing scheme is considered legacy and is no longer offered by Oracle but may be negotiated by customer for future contracts through methodical procurement planning and negotiation. We will discuss this in more detail in a future update.
September 2021 – No-Fee Terms & Conditions (NFTC).
Oracle introduced NFTC licensing which essentially makes Oracle Java free for personal and commercial use – but with important caveats to keep in mind. This starts with Oracle Java v17. LTS releases (v17 and v21) get free patches for a period of 3 years. After that, any patches provided by Oracle after the 3-year period require a commercial license. Non-LTS releases (v18 and v22) include free patches for six months. See table below from Oracle’s Java SE licensing page (Oracle Java SE Support Roadmap).

The key implications of NFTC licensing are:
- This can be an effective tool for removing or reducing the need to purchase Oracle Java licenses; Customers need simply upgrade older Oracle Java to one of the above versions to be covered by NFTC license rules.
- However, customers must take care to not overstep the patching deadlines, after which a commercial license is required. For example, Java 17 patches starting October 2024 will either be covered by OTN license rules (subject to OTN restrictions) or require an Oracle Java SE license.
As of the writing of this article, the last update for Oracle Java 17 is 17.0.11.0.2, released on June 21, 2024.
January 2023 – Java SE Universal Subscription – License Metric Change to “Employee”.
Oracle replaced previous Oracle Java license metrics with the slightly renamed “Java SE Universal Subscription” offered only on the “Employee” license metric. The older Desktop and Server license metrics were removed.
Per this new metric, if there is any Oracle Java used anywhere in a customer’s environment, such use that is not covered by OTN or NFTC license rules, then Oracle requires the customer to license Oracle Java for all employees, contractors and subcontractors of the company.
To highlight the excessive breadth and depth of this new metric, I have copied the definition below (as seen here: Oracle Java SE Subscription Global Price List):
Employee for Java SE Universal Subscription: is defined as (i) all of Your full-time, part-time, temporary employees, and (ii) all of the full-time employees, part-time employees and temporary employees of Your agents, contractors, outsourcers, and consultants that support Your internal business operations. The quantity of the licenses required is determined by the number of Employees and not just the actual number of employees that use the Programs. For these Java SE Universal Subscription licenses, the licensed quantity purchased must, at a minimum, be equal to the number of Employees as of the effective date of Your order. Under this Employee metric for Java SE Universal Subscription Programs(s), You may only install and/or run the Java SE Universal Subscription Program(s) on up to 50,000 Processors, If Your use exceeds 50,000 Processors, exclusive of Processors installed and/or running on desktop and laptop computers, You must obtain an additional license from Oracle.
So, if a company with 5,000 employees only has 10 people actually using Oracle Java, the company must license Oracle Java for all 5,000 employees and fork over $630,000! What if the company hires 20 contractors from Accenture – do they need to also license Oracle Java for all 733,00 Accenture employees? That’s what is explicitly stated in section (ii) in the metric definition above.
We have not yet seen this egregious licensing scheme applied by Oracle successfully (despite Oracle’s attempts), but this is a potentially very expensive licensing option for most customers and is generally considered extremely punitive. In fact, the legal defensibility of this metric could also be questionable, though we have not seen this challenged in court (yet!). We will keep you posted if that changes.
With the above brief history of Oracle Java licensing, we will go over some specific topics in future posts, like negotiating Oracle Java procurements, handling Java audits, and how to carefully tiptoe around NFTC.
As always, feel free to contact us for a complimentary consultation. Contact Us.