
Oracle Java Licensing Changes Timeline
Oracle’s Java licensing has undergone major shifts from free usage under Sun Microsystems to Oracle’s increasingly restrictive models.
Over the past decade, Oracle moved from freely available Java updates to a paid subscription model and finally to a broad per-employee licensing scheme.
This timeline highlights key changes – including the 2019 end of free updates, the 2021 no-fee license period, and the 2023 employee-based subscription – and explains how each change impacts commercial Java users.
2010: Oracle Acquires Sun – Java Remains Free
Oracle acquired Sun Microsystems (Java’s creator) in 2010, inheriting Java’s licensing under Sun’s Binary Code License (BCL). Initially, Oracle kept Java free to download and use commercially, following Sun’s model.
For several years after the acquisition, businesses could run Oracle’s Java SE in production without any license fees. There were no immediate changes in licensing during this period, and Java remained a ubiquitous, no-cost runtime for enterprises.
2013: Introduction of Java Commercial Features
Oracle’s first step toward monetizing Java was introduced in 2013 with the release of “Commercial Features.”
Advanced tools bundled with the JDK, such as Java Flight Recorder and Mission Control, were now treated as premium features. If organizations wanted to use these specific features in production, they needed to purchase a license. Regular Java SE usage (running Java applications) was still free of charge, but enabling these new commercial add-ons required payment.
This move signaled Oracle’s intent to derive revenue from Java without yet disrupting the core free Java platform that businesses relied on.
2018: Java SE Subscription Model Debuts
The major licensing shift began in 2018 when Oracle announced the Java SE Subscription program.
This marked the end of unlimited free updates for Java in commercial environments. Under the subscription model, organizations had to pay Oracle for ongoing Java updates, security patches, and support.
Oracle offered two familiar licensing metrics borrowed from its other software contracts:
- Named User Plus (NUP): A per-named-user license, often applied to desktops or individual users of Java.
- Processor (CPU): A per-processor-core license, typically for servers running Java (with Oracle’s core factor applied).
For the first time, businesses running Java in production faced recurring fees.
Pricing was set at Oracle’s list rates – roughly $25 per month per processor for server licenses, or a per-user monthly fee (approximately a few dollars per user) for desktop deployments. For example, a server with 4 CPU cores could incur about $100/month in Java licensing, and 100 desktop users might cost a few hundred dollars per month.
This subscription provided access to updates and support. Oracle introduced it alongside the new Java release cadence, encouraging companies to subscribe if they wanted timely security patches beyond Java 8.
Real-World Example: A mid-sized company with 10 Java application servers and 100 end-users might have paid on the order of $3,000 per year under the 2018 subscription model (e.g. ~$25×10 processors per month).
Before 2018, this cost would have been $0 for the same usage. The introduction of the Java SE Subscription was a clear signal that free commercial Java was coming to an end, and companies would need to budget for Java as an ongoing expense.
2019: End of Free Updates and the OTN License
January 2019 marked a turning point – Oracle ceased providing free public updates for Java SE 8 to commercial users. Java 8 was (and remains) widely used in enterprises, so this change had a massive impact.
After Java 8 Update 202 (released in January 2019), any further updates (starting with April 2019’s Update 211) were only available to paying customers.
Businesses using Oracle JDK 8 in production could continue running older update levels for free; however, to receive critical security patches released after January 2019, they now require a Java SE Subscription. This effectively ended the “free ride” for companies that had been relying on Oracle’s updates at no cost.
In April 2019, Oracle reinforced this shift by introducing a new Oracle Technology Network (OTN) License for Java. Under the OTN license terms, Oracle JDK could still be downloaded without charge, but free use was strictly limited to certain purposes:
- Personal, non-commercial use (individual’s personal devices).
- Development, testing, or demonstration purposes.
Any other commercial production use of Oracle JDK now requires a paid subscription. In other words, using Oracle’s Java in business applications without a license became a violation of the terms after this point.
Previously, many organizations had used Java under the looser Binary Code License, which allowed broad internal use. The 2019 OTN license effectively removed free commercial use rights.
Companies suddenly faced compliance risks if they deployed Oracle JDK updates in production without paying.
Oracle carved out a few exceptions where no subscription was required: for example, Java usage that was strictly embedded in certain Oracle products (covered by an “Oracle Approved Product Use” clause) or running on Oracle Cloud services had special allowances. However, these exceptions were narrow.
The bottom line in 2019 was that any general commercial use of Oracle Java required enterprises to buy a subscription or risk being out of compliance. This change caught many IT departments off guard and forced them to re-evaluate their Java strategy (e.g., considering alternatives like OpenJDK or staying on old versions).
2021: Oracle’s No-Fee Terms (NFTC) for Java 17
In September 2021, Oracle tried a different approach with the release of Java 17 (an LTS version). It introduced the “No-Fee Terms and Conditions” (NFTC) license for the Oracle JDK.
This new license allowed organizations to use the latest Java at no cost, including in production, but with significant conditions:
- Latest LTS Version Available for Free for a Limited Time: Oracle JDK 17 and later will be free to use for one year after the next Long-Term Support (LTS) release. This meant that Java 17 was free from 2021 until one year after the release of Java 21. In practice, companies can run Java 17 in production without incurring costs through September 2024.
- Updates Eventually Require Payment or Upgrade: Once the grace period ends, any further updates or patches for Java 17 will fall under a paid license (Oracle’s standard OTN or subscription terms). The intention was to encourage users to upgrade continuously to the latest Java version. For example, after Java 21 came out in 2023 and its one-year anniversary passed, Java 17’s free update period expired. At that point, an organization had to either migrate to Java 21 (which is then the free LTS under NFTC) or start paying for Java 17 support.
- No-cost Use Lacks Support: The NFTC license did not include Oracle support or indemnity. It was essentially “use at your own risk” – suitable for organizations that can manage updates themselves and are willing to upgrade frequently.
Oracle’s NFTC was seen as a gesture to win back goodwill after the strict 2019 rules. It gave businesses a way to use Java without immediate cost, provided they stayed on the latest LTS track. However, it also introduced complexity.
Many enterprises value stability and don’t upgrade Java every year; the NFTC forced a choice between rapid upgrade cycles or entering a paid support agreement once the free period ends. In essence, Java was “free again” for those who kept up-to-date, but staying on an older LTS version long-term would eventually incur subscription fees.
This move helped some organizations delay spending on Java licenses, but everyone understood that the free use was temporary under Oracle’s model.
2023: Employee-Based Java Licensing Overhaul
Oracle’s most significant change occurred in January 2023 with the introduction of the Java SE Universal Subscription model. This new model eliminated the old per-user and per-processor licensing options for Java and replaced them with an enterprise-wide, per-employee metric.
The key aspects of the 2023 licensing overhaul are:
- All Employees Must Be Licensed: Instead of counting specific Java users or the CPUs running Java, Oracle now requires companies to license Java for every employee in the organization. The definition of “employee” is broad, encompassing full-time and part-time staff, temporary workers, contractors, and anyone else performing work for the company. Even if only a small fraction of your employees use Java, the license count is the total number of employees.
- Tiered Pricing by Company Size: The subscription cost is charged per employee per month, with volume discounts for larger enterprises. Oracle’s public price list (at launch) was:
- 1–999 employees: $15 per employee/month
- 1,000–2,999 employees: $12 per employee/month
- 3,000–9,999 employees: $10.50 per employee/month
- 10,000–19,999 employees: $8.25 per employee/month
- 20,000–29,999 employees: $6.75 per employee/month
- 30,000–39,999 employees: $5.70 per employee/month
- 40,000+ employees: $5.25 per employee/month
(Table: Oracle Java SE Universal Subscription Pricing Tiers)
Total Employees | Price (USD per employee per month) |
---|---|
1 – 999 | $15.00 |
1,000 – 2,999 | $12.00 |
3,000 – 9,999 | $10.50 |
10,000 – 19,999 | $8.25 |
20,000 – 29,999 | $6.75 |
30,000 – 39,999 | $5.70 |
40,000 or more | $5.25 |
- End of Processor/NUP Licensing: Oracle no longer offers the old Named User Plus or Processor-based Java SE subscriptions to new customers. All new commercial Java licenses must use the employee-based model. Existing customers with legacy Java subscriptions were initially allowed to renew under the old metrics, but Oracle later signaled that even these renewals would be phased out or strongly discouraged.
- Universal Use Rights: The new subscription allows unlimited Java use across the organization (for any number of installations or devices) as long as all employees are accounted for. This simplified compliance in one sense – you don’t have to track every installation – but dramatically increased costs for many. Organizations that previously paid only for specific Java servers or a subset of users now had to cover everyone.
The cost impact of the 2023 model is significant. Many companies saw their Java licensing costs triple or more under the new scheme. For example, consider an organization with 500 employees, of which perhaps 50 actively use Java applications. Under the old 2019 subscription model, the company might have licensed, say, 50 NUP user licenses (for desktop usage) or a handful of server processors, possibly costing on the order of $10,000 to $20,000 per year in total. Under the 2023 rules, that same organization must license all 500 employees at $15 each, totaling $7,500 per month (about $90,000 per year at list price). Even with tier discounts for larger headcounts, the new “universal” pricing often came out much higher than the legacy model for any company that wasn’t already licensing Oracle Java everywhere.
Oracle justified this change as a simplification – one subscription to cover the whole enterprise – and noted that small businesses might pay less (e.g., a company with 20 employees would pay for 20×$15 = $300/month, which could be cheaper than the old model if they had a minimum number of processors before). But for medium and large enterprises, the sticker shock was real. The per-employee model effectively functions like an unlimited site license, and organizations with large payrolls felt the budget impact.
2024: Increased Enforcement and Java 17 Support Changes
By 2024, the implications of these licensing changes will become fully apparent for enterprises. Oracle began aggressively enforcing its Java licensing policies through audits and sales tactics:
- End of Free Java 17 Updates: In September 2024, one year after Java 21’s release, the free update period for Java 17 under NFTC expired. Oracle moved new Java 17 patches and later versions under paid terms (the Oracle OTN license). This means that any organization still running Java 17 in production beyond that date must either upgrade to Java 21 (to remain in a free support window) or purchase a Java subscription to receive critical security updates for Java 17. Oracle’s documentation made it clear that continuing to run Oracle JDK 17 without a subscription (and without upgrading) would violate the license terms after the free window closed.
- Audit Pressure: Oracle ramped up compliance checks, including “soft audits” and formal audits focused on Java usage. Many companies have reported Oracle auditors requesting deployment data. Some Oracle Java customers attempting to renew older Java SE Subscriptions (NUP/Processor contracts) were informed that they must first provide a detailed accounting of all Java installations and agree to a technical audit to verify usage. Oracle’s strategy is to identify any unlicensed Java deployments and then transition those customers to the new employee-based subscription model.
- No Renewals of Legacy Contracts: By late 2023 and into 2024, Oracle started phasing out the renewal of legacy Java contracts. Some customers found that Oracle would only allow a renewal if they agreed it was the last renewal on the old model, or Oracle outright refused to renew without moving to the employee metric. Essentially, Oracle is forcing the migration to the newer model for anyone who hasn’t switched yet.
- Third-Party Java Under Scrutiny: Oracle has also signaled that using third-party Java distributions (such as AdoptOpenJDK, Azul, and IBM) won’t shield companies from audit questions. There were instances where Oracle claimed that customers using non-Oracle JDKs still required Oracle licenses (often a contentious point). This has made organizations nervous that Oracle is monitoring Java download activity and will challenge companies that it suspects are using Oracle’s code without a license.
Strategic Impact: These enforcement trends mean enterprises must treat Java like any other Oracle software in terms of license compliance. The era of freely using Oracle JDK in the shadows is over. Many IT leaders are reevaluating their Java strategy: some are accelerating their moves to OpenJDK or other open-source Java distributions (to avoid Oracle fees), while others who require Oracle’s support are negotiating longer-term deals to lock in pricing. The increased costs and audit risk have elevated Java from an afterthought to a high-priority item in contract negotiations with Oracle.
Recommendations
For organizations using Java, here are practical steps to navigate Oracle’s licensing changes:
- Audit Your Java Usage: Conduct a thorough inventory of all Java installations (servers, VMs, desktops) and versions in use. Determine where you have Oracle’s JDK deployed in production. This is critical to understand your exposure under the new licensing rules.
- Review Your License Needs: Analyze whether you truly need Oracle’s Java SE across all these instances. If certain applications can run on OpenJDK or other vendors’ JDKs (e.g., Amazon Corretto, Azul Zulu), consider migrating to avoid Oracle fees. Use Oracle JDK only where necessary for support or compatibility.
- Stay Current or Plan for Support: If you choose to remain on Oracle JDK, plan to upgrade regularly to take advantage of the No-Fee Terms (e.g., migrate to Java 21, then Java 25, etc., during their free periods). If your applications cannot be upgraded frequently, budget for a subscription once the free period ends, or explore third-party support for older Java versions.
- Evaluate the New Subscription vs Legacy: If you have an existing Java SE Subscription (NUP/Processor), compare the costs of renewing it (if Oracle still allows) versus switching to the new employee-based model. In some cases, negotiating an early switch with a discount may be beneficial; in others, holding onto the old model for as long as possible could save money. Run the numbers for your scenario.
- Negotiate with Oracle: Don’t accept list pricing blindly. Oracle’s Java licensing is negotiable, especially if you have a large deployment or other Oracle contracts. Engage with Oracle (or get a licensing expert) to seek discounts on the per-employee rate or multi-year pricing protections. For instance, larger enterprises should strive for prices closer to the lower end of the tier ($5–$6 per employee) or lower.
- Train and Communicate: Educate your software asset management and engineering teams about the changes to Java licensing. Ensure that everyone is aware that downloading the Oracle JDK for a production system now incurs cost implications. Prevent well-meaning developers from accidentally breaching license terms (e.g., by updating a server with Oracle JDK 8u** updates they found online).
- Consider Java Alternatives: If the cost or compliance burden is too high, consider standardizing on non-Oracle Java platforms. OpenJDK is functionally equivalent for most use cases. Some vendors offer OpenJDK support contracts at a fraction of the cost of Oracle’s. This can drastically reduce your Java TCO, though weigh the risks (e.g., support quality, potential migration effort).
- Leverage Oracle Programs Where Java is Included: If you use Oracle software (such as WebLogic or Oracle Database), verify if those licenses include Java SE usage rights for the embedded JVM. Oracle has allowed for the inclusion of certain Java use in its products. This won’t cover all needs, but ensure you’re not double-paying for Java licenses where you might already be entitled through another Oracle product contract.
Checklist: 5 Actions for Managing Java Licensing
- Identify Installations: Create an inventory of every environment where Oracle Java is installed (including version and update level).
- Assess Compliance: Identify installations that are not covered by a current license or exception. Check if you’re running any Oracle JDK updates released after the free cutoff (e.g., post-January 2019 updates for Java 8) without a subscription.
- Make Upgrade Decisions: Decide whether to upgrade to the latest Java LTS version regularly to utilize the free support window, or to stick with a specific version and pay for support. Set timelines for upgrading to Java 21 or beyond if needed.
- Evaluate Licensing Options: Compare the cost of Oracle’s Java SE Universal Subscription (per-employee) against alternatives. Obtain quotes for third-party Java support or estimate the internal cost of migrating to OpenJDK. Include these in your budget planning.
- Prepare for Audits: Proactively gather proof of your Java licenses or migration plans. If Oracle contacts you, you should be prepared to demonstrate that you’ve either licensed all required Java usage or have migrated off the Oracle JDK. Have a response plan for Oracle’s audit requests, involving your procurement and legal teams.
FAQ
Q1: What changed in Oracle’s Java licensing in 2019?
A: In 2019, Oracle fundamentally shifted Java to a paid model for commercial use. Oracle stopped providing free public updates for Java SE 8 after January 2019, meaning businesses could no longer get security patches for Java without a subscription. Oracle also introduced a new OTN license that prohibited free commercial use of Oracle JDK across all versions. Essentially, 2019 ended the era of free Java updates for companies – if you were running Oracle Java in production, you now needed to pay for a Java SE Subscription (unless you fell under a narrow exception like personal use or certain Oracle products).
Q2: Is Java still free for commercial use under any circumstances?
A: Yes, but with limitations. Oracle Java can be used for free in development and testing, and Oracle’s No-Fee Terms allow production use of the latest LTS release (e.g., Java 17, Java 21) for a limited time. However, that free use expires one year after the next LTS is out. In practice, a business can use the latest Oracle JDK version at no cost for a couple of years at most. Beyond that, continued commercial use requires a paid subscription. Also, remember that Oracle’s license permits personal use at no cost (e.g., a developer running Java on their home PC). Still, any broad internal business use is likely not free unless you strictly stay within the NFTC window or use an alternative, such as OpenJDK.
Q3: What is the Oracle Java SE Universal Subscription introduced in 2023?
A: It’s Oracle’s new enterprise-wide Java licensing model. Instead of buying licenses per server or per named user, companies now must subscribe based on their total number of employees. This Employee-Based Subscription covers unlimited Java use across the organization, but you pay a monthly fee for every employee (with tiered rates based on company size). For example, a firm with 1,000 employees would pay roughly $12,000 per month at list price (1,000 × $12). This model replaced the older Java SE Subscription (which was based on per-processor or per-user metrics) for all new license purchases. It often results in higher costs for mid-to-large companies, since even non-IT staff are counted in the license tally.
Q4: How can my company reduce the cost of Oracle Java licensing?
A: There are a few strategies:
- Optimize Usage: First, assess if you need Oracle’s Java on all systems. Remove or replace Oracle JDK in places where it isn’t truly required. Consider using OpenJDK or other vendors’ JDKs for applications that don’t specifically need Oracle’s distribution.
- Upgrade to Free Versions: Leverage the NFTC license by upgrading to the latest Java LTS version to get a period of free use. This can buy you time without fees, though you must stay on the upgrade treadmill.
- Negotiate: If you do need Oracle Java subscriptions, negotiate with Oracle. Especially for the employee-based model, try to get a better rate per employee or concessions (Oracle may offer discounts if you commit to multi-year or if it’s bundled in a larger deal).
- Third-Party Support: Some companies continue to use an older Java version and purchase support from third-party providers (or utilize another vendor’s build of OpenJDK with support). This can be cheaper than Oracle’s subscription, though you won’t have Oracle’s official support.
- Scope In Oracle Apps: Ensure you’re not paying twice. If an Oracle application you use includes Java SE rights, use the Java that’s bundled/allowed with that product for those specific cases to avoid extra licensing.
Q5: What should we do if Oracle audits our Java usage?
A: Treat a Java audit like any other software license audit. Do not panic or rush to remediate without understanding your rights. First, review your entitlements – do you have any Java SE subscriptions, or are you using only OpenJDK? Gather data internally on where Oracle Java is installed and how it’s used. Oracle may present a script or request to run tools; involve your legal or software asset management team before sharing data. If you are using Oracle JDK without a license, consider your options: you might negotiate a subscription purchase to resolve past use (sometimes Oracle will waive back penalties if you agree to a new contract). It’s often wise to engage a licensing expert or advisor to assist with communication with Oracle. Key point: Oracle’s goal is typically to sell you a Java subscription, so you have an opportunity to negotiate a deal, possibly across your entire Oracle portfolio, rather than simply paying a non-compliance fine. Prepare your business case (for example, calculate how many Java licenses Oracle’s claim suggests you need, and use that to negotiate a fair price under the new model). is crucial for effectively managing IT budgets, maintaining compliance, and avoiding costly audits.
Read about our Java Advisory Services.