Oracle Java Licensing Models: Evolution and Pricing
Evolution of Licensing Policies
Oracle’s approach to Java licensing has undergone several major changes over the past few years, shifting from a free-use model to a subscription-based model.
The Oracle Java licensing overview offers background on how and why Oracle changed its licensing strategy.
Oracle has “certainly not been afraid to adjust its pricing models,” with four major changes since 2018.
The timeline below outlines how the licensing policies evolved:
- 2018: Oracle shifted Java to a more predictable release cadence, releasing new versions every 6 months and introducing quarterly updates. It also introduced the option of paid Java SE support subscriptions. Java remained free to use, but commercial users could pay for support as needed.
- January 2019: Oracle ended free public updates for Java 8 (then the most widely used version) and required a paid subscription thereafter. In other words, running Java 8 in production without a support subscription after January 2019 renders companies non-compliant. This marked the end of Java being free for many users and was met with criticism, as it forced companies to pay for Oracle Java licenses.
- April 2019: Oracle introduced a new Oracle Technology Network (OTN) License for Java. Under this license, Oracle’s JDK remained free for personal, development, and testing use; however, commercial use now required a paid Java SE subscription. This was a significant shift – for the first time, companies had to pay just to use Oracle JDK in production, leading many to reduce or eliminate their reliance on Oracle’s Java. Oracle’s popularity among Java developers plummeted after this change; only 34% were using Oracle’s JDK by late 2019, down from 70% the previous year.
- September 2021: In response to backlash, Oracle announced a new “No-Fee Terms and Conditions” (NFTC) license for Java 17 and later. Under NFTC, Oracle allowed free use of its JDK (including production) for the latest Long-Term Support (LTS) version, with the caveat that this was only “free” for one year after the next LTS release. You could use Java 17 at no cost until Java 21 came out; after that, you’d need to upgrade to stay free or pay for support. This partially rolled back the 2019 licensing strictness, offering a temporary free window for the latest Java. However, it still left many organizations wary – it was free “in theory,” but with an expiration date, creating uncertainty.
- Jan 2023: Oracle quietly made the most disruptive change, replacing its price list and licensing model without a formal announcement. The traditional per-processor and per-user (Named User Plus) licensing metrics were replaced with a new Java SE Universal Subscription, offering per-employee pricing. Instead of counting only the machines or users running Java, Oracle charges for every employee in the organization, including part-time and contract staff, regardless of whether they use Java. This “Employee” metric is defined very broadly – “all of your full-time, part-time, temporary employees, and (ii) all of the … employees of your agents, contractors, outsourcers, and consultants that support your internal business operations”. Notably, “the quantity of licenses required is determined by the number of Employees and not just the actual number… that use the Programs”. In effect, everybody except your dog needs a license under Oracle’s new Java model, even if only a few people in the company develop or run Java applications. This change separated cost from actual usage, drawing heavy criticism from customers and analysts. An introduction to fundamental concepts is available in Oracle Java licensing explained.
To summarize these changes, the table below compares Oracle’s Java licensing models over time:
| Timeframe / Model | License Terms | Impact on Users |
|---|---|---|
| Pre-2019 (Java 6, 7, 8) | Free public updates (Oracle BCL*). Paid support optional for updates/patches. | Gave a temporary free usage window for the newest Java version. Eased costs in the short term (for those who could upgrade promptly), but essentially a grace period. Users still needed a plan once the next version was released. |
| 2019 – 2021 (Java SE Subscription) | Oracle JDK is free for dev/test; a paid subscription is required for commercial use (Java 8 updates after Jan 2019 and Java 11+ in production). Metrics: per Named User Plus (desktop) or Processor (server). | Introduced license fees for using Oracle Java in business. Companies had to count users or CPU cores and buy subscriptions accordingly. Many were caught by the end of free updates, leading to compliance issues if they continued using Java 8 without subscribing. |
| Sept 2021 (Java 17 NFTC) | Per-Employee Subscription for Java SE. All employees and contractors must be counted, whether they use Java or not. Old metrics (user/processor) are abolished. Subscription (annual fee) model only – no perpetual license. Volume discounts are available for larger organizations. | No-Fee Terms for the latest LTS (Java 17): free use (including production) until one year after the next LTS release. Older versions still require a subscription for updates. |
| 2023 – Present (Java SE Universal Subscription) | Dramatically increased scope and cost for most companies. Licensing Java now means paying for the entire organization, which, for many, is exponentially more expensive than the old model. Even one Oracle JDK installation can trigger a license requirement for thousands of employees. Many organizations saw costs skyrocket by 2× to 5× or more under this model. It’s effectively a “Java tax” on your whole company. | Dramatically increased scope and cost for most companies. Licensing Java now means paying for the entire organization, which for many is exponentially more expensive than the old model. Even one Oracle JDK installation can trigger a license requirement for thousands of employees. Many organizations saw costs skyrocket by 2× to 5× or more under this model. It’s effectively a “Java tax” on your whole company. |
<small>*BCL: Binary Code License – Oracle’s old free Java license for general use, which had certain restrictions like not using it for embedded devices without a separate license.
Current Java Licensing Structure & Pricing:
Today, Oracle Java is only offered through subscription licensing (no one-time purchase), and the pricing is tied to the “Oracle Java SE Universal Subscription” model. Key characteristics of this model include:
- Per-employee metric: As noted, Oracle counts every employee (and certain contractors) for licensingpurposes. This is regardless of how many use Java. For example, if a company has 5,000 employees but only 100 developers using Java, Oracle still charges for 5,000 seats. This broad definition results in significant overcounting compared to actual usage. Oracle claims that this simplifies compliance (no need to track installations), but most customers must pay for far more licenses than they use. Analysts have been “extremely critical” of separating cost from usage. The headcount‑based approach is further explained in Understanding Oracle’s employee‑based Java licensing model.
- Elimination of Legacy Metrics: The previous metrics, Named User Plus (which counted specific users or devices) and Processor (which counted CPU cores on servers), are no longer available for sale. Oracle quietly removed the old Java SE Subscription price list and replaced it with the new Universal Subscription price list. This means new or renewing customers have no choice but to accept the per-employee model; one cannot buy a smaller license subset for just certain servers or users.
- Pricing Levels: Oracle charges per employee per year (as a subscription). The list price starts at $15 per employee for organizations with up to 999 employees, with marginal-volume discounts for larger headcounts. For example, a company with 5,000 employees would pay $10.50 per employee, totaling around $52,500 per month (approximately $630,000 annually). Even with discounts at higher tiers, large enterprises face multi-million-dollar bills: a company with 42,000 employees would owe about $2.8 million per year for Java. These costs illustrate the high expense of the new model when scaled up. To explore list pricing in detail, see the Java price list – how does it calculate costs?
- Universal Coverage (All Environments): The subscription allows using Java on an unlimited number of devices (desktops, servers, VMs, etc.) up to a very high cap (e.g., 50,000 processors), as long as you have paid for all employees. Once you pay the company-wide fee, you can deploy Java anywhere within your internal environment. Oracle pitches this as a way to simplify license management, eliminating the need to count installations. However, the cost is borne regardless of whether you need Java on every machine.
- Subscription (Not Perpetual): It’s important to note that these are subscription licenses—if you stop paying, you lose the right to updates and potentially the right to use the software. There is no “buy once, use forever” option. This creates an ongoing cost commitment and can lead to vendor lock-in. Once an organization relies on Oracle for Java updates, dropping the subscription could expose them to security risks unless they migrate completely off Oracle Java. Requirements for older releases are covered in Oracle Java Licensing for Legacy Versions – Java 6/7/8/11.
- No Free Updates for Older Versions: Oracle’s free use allowances now generally apply only to newer versions, as described under NFTC terms for Java 17 and later. If you run older Java versions (Java 8, 11, etc.) in production and want updates/patches, you must have a subscription or other paid support. Oracle has effectively monetized the maintenance of older Java versions – running them without paying means no security patches or using outdated last-public patches from years ago. This is both a security and compliance risk if Oracle audits you for using post-public-update builds without a license.
Pricing Implications: The shift to per-employee licensing has had a massive financial impact on Java users.
Gartner observed that customers switching to the new model experienced cost increases of 2 to 5 times their previous Java spend. Another analysis warns that the changes could increase Java licensing costs by 3- 5 times for many organizations.
For some with small deployments, the new model is disproportionately expensive.
As one licensing expert put it, the per-employee model “is essentially a tax on the entire company for the actions of a few Java users”. In contrast, previously, you could license only a few users or systems. Finance managers can learn more from Oracle Java licensing costs – 20 things every CFO needs to know.
This has led to extreme pushback from the enterprise community; nearly 90% of Oracle’s Java customers are considering abandoning Oracle’s Java in favor of alternatives after these “predatory” pricing changes.
In short, Oracle’s current Java licensing structure presents a high-cost, high-stakes proposition for enterprises, requiring careful consideration by procurement and IT management.
Read about our Java Advisory Services.