Oracle’s Java licensing has undergone significant changes since 2019, transitioning from freely available updates to a paid subscription model and, most recently, to an employee-based licensing metric.
This guide explains the key changes in 2019, 2021, 2023, and 2024, the different Oracle Java license agreements (BCL, OTN, NFTC), how Oracle conducts Java audits, and what the new Java SE per-employee subscription means for costs.
Organizations must understand these changes to avoid compliance traps and manage Java licensing costs effectively.
Download our Oracle Java Audit white paper to learn how to respond to and avoid common pitfalls.
In the white paper, we cover:
- Recommendations for responding to an Oracle soft audit
- Oracle’s soft audit process
- Oracle’s formal audit process
- The kind of data Oracle may have on your organization’s Java product downloads.
Our services include a guarantee that no fees will be paid for retroactive use. If your organization’s strategy is to move away from Oracle Java and avoid Oracle’s fees, we should talk.
Oracle Java Licensing Changes – A Complete Guide
Oracle Java licensing has undergone three major overhauls in the last decade — each shifting more of the cost and compliance responsibilities onto customers.
From a once-free utility to a costly enterprise subscription, every change has tilted negotiation power further in Oracle’s favor. This guide explains what changed, when it changed, and what it means for your next Java renewal.
We’ll walk through a timeline of Java licensing from legacy models to today’s employee-based subscription, highlighting impacts on cost and compliance at each phase. By understanding this evolution, CIOs and IT asset managers can plan a future Java strategy with eyes wide open.
Pro Tip: Every Oracle licensing change has one goal — to convert free users into paying subscribers.
Legacy Java Licensing – Pre-2019
In the years before 2019, Java was effectively free for businesses under Oracle’s Binary Code License (BCL). Companies could download and use Oracle’s Java Development Kit (JDK) in production without paying any fees.
Key traits of this era included:
- Free for commercial and personal use: Whether an individual developer or a large enterprise, you can run Oracle JDK in production at no cost. Licensing wasn’t a budget concern.
- Updates and security patches are freely available: Oracle publicly provides updates (including critical security patches) for Java versions like Java 6, 7, and 8. Organizations can keep Java up to date without a subscription.
- No tracking of installations: Enterprises often deploy Oracle JDK widely without even tracking it. Since it was free, there was little motivation to count installations or closely manage usage.
- No compliance risk: Oracle had no formal audit process for Java in this period. There were no license audits targeting Java usage because no revenue was tied to it. Running Oracle Java didn’t carry the risk of an unexpected bill.
Why It Changed: Oracle realized that Java’s ubiquity was a missed revenue opportunity. By the late 2010s, Java was installed on millions of corporate devices and servers, yet Oracle generated no revenue from it.
This prompted Oracle to rethink Java’s licensing model. In short, Oracle saw that countless enterprises were relying on Oracle JDK for free and decided it was time to monetize that dependency. The transition from free updates to paid subscriptions was initiated.
Pro Tip: If you installed Oracle JDK before 2019, you were likely compliant — but now you’re visible. (Oracle’s policy changes have brought even long-time free users into the spotlight of compliance.)
2019 – The Subscription Model Arrives
The first major shift came in January 2019, when Oracle introduced the Java SE Subscription model. This marked the end of free public Java updates for commercial users. Suddenly, businesses could no longer rely on free patches for Java 8 or newer versions in production.
Here’s what changed in 2019:
What Changed:
- Paid subscription required for commercial use: Enterprises now need a paid Java SE Subscription to continue using Oracle Java in production and to receive updates/patches. Free use was limited to personal or development environments.
- New per-device and per-user metrics: Oracle’s subscription pricing was based on traditional metrics: per-processor (for servers) or per-named-user (for desktops/developers). For example, a company might pay per Java server core or per employee using Java on their PC.
- Non-production use included: The subscription often covered non-production environments (development, testing) at no extra cost, as long as production instances were licensed. This encouraged customers to license all uses of Oracle JDK under the subscription.
To illustrate the 2019 pricing model, typical rates were about $2.50 per named user per month (for each user of Java, e.g. on a desktop) or $25 per processor per month (for each server CPU running Java):
| Metric | Description | Typical Rate (2019) |
|---|---|---|
| Per User | Each named individual using Java | ≈ $2.50 per month |
| Per Processor | Each server processor running Oracle JDK | ≈ $25 per month (per CPU) |
Impact: 2019’s change made Java a paid product for many organizations, some of which had been using It for free for over a decade. Key impacts included:
- New licensing expense: Organizations were forced to budget for Java for the first time. Depending on the number of Java installations, this could mean significant new annual costs.
- Scramble for alternatives: Some companies sought to avoid the subscription by migrating to OpenJDK builds (the open-source version of Java) provided by other vendors (like AdoptOpenJDK, Red Hat, or Azul), which remained free. Others accepted the Oracle subscription for the assurance of official support and updates.
- Oracle “soft audits” began: Oracle’s sales teams began approaching enterprises to review Java usage. These informal inquiries were essentially soft audits—a tactic to identify unlicensed use and convert it into subscription sales. High-profile enterprises that were openly using Oracle Java became targets for Oracle to upsell the new subscriptions.
Pro Tip: In 2019, Java went from a free utility to a subscription business. (It was a watershed moment that introduced ongoing Java fees where there had been none.)
2021–2022 – Multiple License Agreements Create Confusion
After 2019, Oracle’s Java licensing grew more complicated. Between 2020 and 2022, Oracle introduced multiple overlapping license agreements for Java, which created confusion about what was free and what required payment.
An organization’s rights depended on which Java version they were using and on the agreement under which they were using it. The main Java license frameworks that coexisted during this period were:
| License Agreement | Description | Use Case (Who/When) |
|---|---|---|
| Binary Code License (BCL) | Legacy license pre-2019; allowed free commercial use of older Java versions. | Use for legacy installs of Java 8 and earlier (with updates up to 2019). |
| Oracle Technology Network (OTN) License | Introduced with Java 11 (2018); allowed free use only for development and testing – not for production. | Use in labs, CI/CD, and developer machines. Production under this license was prohibited without a subscription. |
| Oracle No-Fee Terms and Conditions (NFTC) | Introduced in 2021 for Java 17 (and later LTS versions); allows free commercial use of a specific LTS version, including production, but only until the next LTS is released. No-cost license, but updates stop once next version is out. | Use for organizations that adopt the latest LTS (e.g. Java 17) in production and plan to upgrade to the next LTS (e.g. Java 21) when it arrives, to remain free. |
| Oracle Java SE Subscription | The paid subscription model (2019–2022) under per-user or per-processor metrics, as described above. Required for commercial use of Oracle Java versions not covered by other free terms. | Use for enterprise production deployments that needed support/updates, especially Java 8 (post-2019), Java 11, Java 13, etc., if not moving to OpenJDK. |
By 2021, a company could easily be unsure of its compliance: for example, Java 8 might be free under BCL up to a certain update, Java 11 required a subscription or use of OpenJDK, and Java 17 was free under NFTC – but only temporarily. This patchwork of agreements led to significant confusion in the Java community about which versions were “truly free” and for how long.
Key Insight: The No-Fee Terms and Conditions (NFTC) license for Java 17 and later gave a false sense of “free forever,” but it was time-limited. For instance, Java 17 was free to use (including in production) from its 2021 release until the next Long-Term Support (LTS) release. Once Java 21 LTS launches in late 2023, Java 17 under NFTC will no longer receive free updates.
In practice, this means enterprises must continually upgrade to the latest LTS or start paying for a subscription once their free-use LTS becomes outdated. In short, every new LTS release resets the clock on free usage – “free” is only temporary under NFTC.
Pro Tip: Every new LTS release resets the clock — free is temporary. (Make sure you know when your “free” Java version’s support runs out.)
2023 – The Employee-Based Universal Subscription
Oracle’s most dramatic licensing change came in January 2023. Oracle replaced its per-user/processor Java SE Subscription with the Java SE Universal Subscription, a subscription model based on employee counts. This change has had profound cost implications for Java customers.
New Metric – Java by Employee Count: Under the 2023 Universal Subscription, Java licensing is now based on the total number of employees in your organization, rather than the number of Java installations or specific Java users. If you use Oracle Java anywhere in your business, you must license all employees.
Key points of this model include:
- “All employees” counted: Every full-time, part-time, and temporary employee and every contractor or consultant supporting your business counts toward the Java license, whether or not they personally use Java. For example, a company with 5,000 employees must buy 5,000 Java licenses even if only 100 of those employees actually run a Java application.
- Global scope: The metric applies to the entire company (and its affiliates under the same corporate umbrella) worldwide. You can’t limit the count to a department or a subset of users – it’s an organization-wide entitlement.
- Tiered pricing: Oracle set a tiered price per employee that decreases as organizations grow. Pricing starts at $15 per employee per month for smaller businesses and can drop as low as $5.25 per employee per month for very large enterprises (tens of thousands of employees). For instance, an 800-employee company might pay $15 * 800 = $12,000 per month, whereas a 50,000-employee multinational might negotiate closer to $5 per employee.
This table highlights how the Java licensing model changed from the 2019 subscription to the 2023 employee subscription:
| Aspect | 2019–2022 Java SE Subscription | 2023+ Java SE Universal (Employee) |
|---|---|---|
| License Basis | Specific Java users (desktop installs) or processors (servers) licensed individually. | Total number of employees in the organization (all staff count toward license). |
| Who Must Be Licensed | Only machines/users running Oracle Java needed licensing. | Every employee, regardless of their use of Java, if Java is used anywhere in the org. |
| Pricing Transparency | Published price list (per-user/per-processor) – relatively straightforward sizing. | Published tiered pricing per employee, but often negotiable for large counts or renewals. |
| Typical Audit Risk | Moderate – scope limited to environments where Java was deployed (easier to pinpoint usage). | High – Oracle can claim an undercount if any employee was left out, and the broad scope means higher non-compliance penalties. |
Impact: The 2023 employee-based model was a game-changer. Many organizations saw their Java licensing costs skyrocket. For example, a company that previously paid for 100 server licenses might now have to pay for thousands of employees, even if only a small IT team uses Java.
Some impacts and reactions include:
- Massive cost increases: Because the license count jumps to total headcount, some Java customers calculated that their renewal costs would increase tenfold or more under the new model. This has been especially painful for companies with large employee bases but only moderate Java usage.
- All-or-nothing licensing: Under the new rules, if you use Oracle Java on even one server, you are expected to license your entire employee population. This forced some organizations into tough choices: either seek alternatives for every Oracle Java usage or budget for the universal subscription across the company.
- Renewal dilemmas: Existing Oracle Java subscribers on the old model faced dilemmas at renewal time. Oracle initially indicated that existing subscriptions could be renewed under the old metrics. Still, in practice, it strongly encourages (or even requires) a move to the employee metric when contracts expire. Companies that were accustomed to licensing only a subset of users must now consider an enterprise-wide license, or risk non-compliance.
- Customer pushback: The steep cost led many to re-evaluate OpenJDK and other third-party Java distributors more seriously. If Oracle is charging “per employee” regardless of usage, the incentive to move to free or cheaper Java distributions (where you only pay, perhaps, optional support per server or not at all) became much greater. Oracle’s gamble is that many enterprises will still pay for the official subscription to avoid any compliance risk.
Pro Tip: Oracle’s “employee” metric is perhaps the most expensive way to license a free product. (It forces you to pay for Java usage whether you use it widely or not, so consider if you truly need Oracle’s version.)
Oracle JDK vs OpenJDK – The Core Split
One crucial factor in Java licensing is understanding that Oracle JDK and OpenJDK are essentially the same software with different licensing and support models.
Since 2019, Oracle’s JDK (the Oracle-branded Java Distribution) and the open-source OpenJDK have had parity in features and performance—the codebases are largely identical. The difference lies in the legal terms and support:
| Aspect | Oracle JDK (Oracle’s Java Distribution) | OpenJDK (Open-Source Java) |
|---|---|---|
| Licensing | Commercial license by Oracle; requires accepting Oracle’s terms (and often a paid subscription for production use). | Open-source under GPL v2 with Classpath Exception; free to use, modify, and redistribute. |
| Cost | Costly – licensed per employee under the Universal Subscription (or previously per processor/user). | Free – no license fees. You can download OpenJDK binaries from Oracle or other providers at no charge. |
| Updates | Quarterly patches and updates provided by Oracle (with subscription). Oracle JDK updates beyond public releases require a support contract. | Quarterly updates are also available from the OpenJDK community or third-party providers (e.g. Adoptium, Red Hat, Azul). These are essentially the same fixes, delivered under open source. |
| Support | Oracle Premier Support available (with paid subscription) for troubleshooting, SLAs, etc. | Community support (forums, etc.) or paid support from third-party vendors. You can also self-support if you have in-house Java expertise. |
| Audit Risk | High – Use of Oracle JDK in production without a proper license can lead to audits and back-charging for subscriptions. | None – OpenJDK has no auditing entity. There is no compliance risk because it’s free and open (aside from adhering to the open-source license terms, which have no monetary cost). |
In summary, the Java technology itself is not inherently tied to Oracle’s license fees. Organizations can run Java applications using OpenJDK and avoid Oracle’s licensing costs entirely.
Oracle’s value proposition is the official support and the comfort of a contractual relationship, but technically, the software running your Java workloads can be obtained for free.
It’s often said that after 2019, Oracle is effectively selling peace of mind and support contracts, not unique software features. The decision for enterprises is whether Oracle support and assurance are worth the price, or if they can rely on open-source Java distributions and third-party support.
Pro Tip: Same code, different contract — Oracle sells the paperwork, not the software. (Don’t confuse Oracle’s licensing with a superior product; the product is virtually the same as free OpenJDK.)
Understanding the Different Oracle Java License Agreements
By 2023, Oracle will have four different Java license agreements in effect, each with its own terms. It’s important to know which applies to your Java installations:
- Oracle No-Fee Terms and Conditions (NFTC): This is Oracle’s license for certain newer Java versions (starting with Java 17, and also Java 21) that allows free use for all purposes, including commercial, but only for a limited time. Essentially, you can use the specified LTS version in production without paying until its next LTS successor is released. Once the next version is released, you won’t receive further updates for the older version under NFTC. (Example: Java 17 was free under NFTC until Java 21 came out in 2023. Now, to keep Java 17 updated, you’d need a paid subscription or to upgrade to 21, which is the new free LTS under NFTC.)
- Oracle Technology Network (OTN) License: A license type introduced with Java 11 and used for Java 11, 13, 15 (non-LTS versions) , etc. This license allows free use for development, testing, prototyping, and personal use, but strictly forbids commercial production use. In other words, you can download Oracle JDK under the OTN license to experiment or develop, but deploying that Oracle JDK in production without a subscription violates the license.
- Java SE Universal Subscription (Employee-based): The current enterprise subscription model (since 2023). It requires paying for Java based on your total employee count, as detailed in the previous section. This is Oracle’s primary offering for companies that need Java support and updates across the organization.
- Legacy Binary Code License (BCL): The old license for Java SE used up through Java 8 (and Java 9/10 for their brief lives). Under BCL, you could use Java for free in general-purpose computing. Companies that never updated past certain older Java versions might technically still be on this license. However, keep in mind Oracle stopped providing free public updates for Java 8 in 2019, so using BCL Java 8 today means you’re likely running outdated builds unless you have a paid support contract.
These agreements often coexist in an enterprise.
For example, an organization might be using Java 8 (covered by legacy BCL for old installs, but no free updates), Java 11 (which would require a subscription or use of OpenJDK, since OTN doesn’t allow production use), and Java 17 (temporarily free under NFTC until they switch to Java 21).
Understanding which license applies to each Java deployment is crucial for compliance. Oracle’s contracts and download pages can look similar, so it’s easy to assume Java is free when, in fact, a clause limits that freedom.
Pro Tip: Each Oracle license looks similar — until you read what it doesn’t say. (Always double-check the fine print; the absence of permission for production use in some licenses is intentional.)
Renewals – How Java Pricing Evolves
For organizations already paying Oracle for Java, renewal time can bring unpleasant surprises. Oracle’s Java subscription renewals often come with escalating costs if you’re not prepared.
Here’s what to expect when approaching a Java SE subscription renewal:
- Annual price uplifts: It’s common for Oracle to apply a 3–7% annual price uplift at renewal, citing inflation or increased support costs. Over a few years, this can significantly raise your Java bill.
- Headcount growth charges: Under the employee-based model, if your company’s headcount has grown since the last contract, Oracle will likely require you to true up to the higher headcount (and pay accordingly going forward). Your costs increase in proportion to workforce size, not actual Java usage.
- Loss of discounts: If you originally negotiated any special discounts or grandfathered terms (for example, if you were an early subscriber on the old model), those discounts or terms may not carry over. Oracle’s default stance is to remove any one-time discounts at renewal and to base the new term on the official price list or the new metric.
- Push to new metrics: As noted, Oracle may push you to migrate to the latest licensing model (e.g., from Named User/Processor to Employee) upon renewal. Even if the FAQ or sales reps suggest you can renew “as-is,” be cautious—the renewal paperwork might still present the new model.
Best Practices for Renewal:
- Inventory your Java usage 6–12 months in advance: Don’t wait for Oracle’s quote. Proactively gather data on the number of Java installations, their versions, and their criticality. This lets you assess if you can reduce usage or shift some workloads to OpenJDK before renewing.
- Consider OpenJDK alternatives: Use the renewal lead-up to evaluate whether you can replace Oracle JDK with OpenJDK (or a third-party-supported Java) for some or all systems. Even if you decide to stay with Oracle, having a credible migration plan or pilot can be a powerful negotiation lever.
- Challenge automatic increases: Just because Oracle proposes a 5% uplift doesn’t mean you must accept it. If your usage hasn’t grown or if Java is a smaller part of your IT portfolio, make the case for holding prices steady. Similarly, if they want to move you to the employee metric and your actual Java footprint is small, use that data to push back.
- Align with budget cycles: Time your internal budgeting and approvals to avoid being caught off guard. Oracle will often renew discussions to its advantage (like quarter-end). Being ready on your side ensures you’re not forced into a quick agreement.
Pro Tip: Oracle assumes you’ll renew by default — surprise them. (Come to the table with data and alternatives, rather than simply accepting the first quote.)
Negotiations – Key Levers to Use
When negotiating a Java licensing deal with Oracle, knowledge and strategy are your best friends.
You don’t have to accept Oracle’s first offer or their definitions at face value.
Here are key levers and tactics to strengthen your negotiating position:
- Challenge the “employee” definition: Oracle’s employee-based metric is broad. In negotiations, closely examine who counts as an “employee.” For example, do you need to count part-time interns or contractors who never interact with your internal systems? Oracle’s standard contract counts anyone on your payroll, plus certain contractors. You may negotiate to exclude categories of workers who do not use IT systems or to count only full-time equivalents. Any reduction in the employee count can directly cut costs.
- Leverage timing (quarter/year-end): Oracle sales representatives have quarterly and annual targets. If possible, align your negotiation to hit at Oracle’s quarter-end or fiscal year-end (May 31 for Oracle’s fiscal year). At these times, reps may be more willing to offer discounts to close the deal. Use this urgency to your advantage for better terms.
- Bundle with other Oracle deals: If your organization also does significant business with Oracle (databases, applications, cloud services), consider negotiating Java as part of a larger deal. Oracle might offer a concession on Java pricing if it helps it secure or extend a bigger contract. Ensure, however, that Java doesn’t get lost in the shuffle—keep its terms clearly documented.
- Show a credible OpenJDK migration plan: Oracle is more willing to negotiate if they sense you have a real alternative. If you can demonstrate that your technical teams have tested using OpenJDK or another Java distribution and could switch, Oracle will realize that their “all or nothing” leverage is weakened. Even asking detailed questions about transitioning away from Oracle JDK may prompt Oracle to adopt a more cooperative stance.
Common Mistake: Don’t simply accept Oracle’s initial employee count or Java usage assessment. Always validate the numbers with your own data.
For example, Oracle might say, “We see you have 10,000 employees, so that’s what you need to license.”
But perhaps that figure includes overseas contractors or subsidiaries you can exclude. Work with HR and your asset management team to confirm exactly who and what should count. By correcting any overestimates, you can save significantly.
Remember, in any negotiation, information is power. Oracle reps often have limited visibility into your actual Java usage beyond what you tell them or what an audit might surface.
If you come prepared with accurate data and a willingness to explore alternatives, you stand a much better chance of getting a reasonable deal.
Pro Tip: Negotiation power = alternative options + accurate data. (The more options you have and the more facts you bring, the better your outcome.)
Audits – Soft vs. Formal
Oracle has ramped up its Java compliance audits in recent years, especially as the subscription model took hold.
It’s important to distinguish between “soft” audits and formal audits and handle each appropriately:
| Audit Type | How It’s Triggered | Oracle’s Approach | Risk Level for Customer |
|---|---|---|---|
| Soft Audit (Informal Inquiry) | Often initiated by an Oracle sales or account manager when they suspect unlicensed Java use (or as a broad outreach to customers). You might get an email asking for a Java usage review. | Usually an informal request for information: “Can you share how many Java installations you have and whether they’re licensed?” Oracle might offer a free Java workshop or assessment, which is actually a fishing expedition for compliance gaps. | Medium: If you volunteer data without preparation, Oracle could use it to pressure a purchase. However, since it’s not a legal audit, you have more flexibility in how to respond. |
| Formal Audit (Contractual Audit via LMS) | Triggered by Oracle’s License Management Services (LMS) or Global Licensing team, often if a soft audit raises red flags or if you’re a large customer coming up for renewal. You’ll receive an official audit notice per your contract terms. | A formal audit is a legal process. Oracle will usually require you to run data collection scripts or provide detailed deployment data. The scope might include all environments. It’s a rigorous review, and Oracle’s auditors will comb through results to find any Java usage that isn’t licensed. | High: A formal audit can lead to a hefty bill for back-dated licenses or non-compliance fees if unlicensed Java usage is found. There’s a legal obligation to cooperate, and the findings can cost far more than an upfront subscription would have. |
In many cases, a soft audit can escalate to a formal audit if not handled carefully.
For example, if you ignore Oracle’s initial friendly request, they might issue a formal audit notice. Conversely, if you respond too freely, you might reveal a compliance gap that Oracle then insists on reconciling (either through a purchase or an audit).
How to Respond to a Java Audit:
- Don’t share data blindly: Always review any data internally before sending it to Oracle. It may be wise to involve your legal or compliance team. If Oracle provides scripts for data gathering during a formal audit, validate them in a test environment first to understand what they collect.
- Get the scope in writing: For a soft audit, you can ask, “What exactly do you need to see?” Keep communication in email so you have a record. For a formal audit, the notice letter should outline the scope—ensuring it’s clear which products and time periods are covered, so Oracle doesn’t turn a Java audit into a fishing expedition across all Oracle products.
- Engage independent experts: If you’re not confident, consider bringing in an independent licensing consultant or counsel with experience in Oracle audits. They can guide your responses, help analyze Oracle’s findings, and ensure you only pay what you actually owe (and nothing more).
- Maintain a cooperative but cautious tone. Especially in a formal audit, be professional and timely in your responses, but do not feel pressured to provide more information than requested. Everything you share should be truthful and necessary.
Pro Tip: A Java audit isn’t just a technical review — it’s a negotiation in disguise. (Oracle’s auditors might act like it’s purely data-driven, but there is often room to negotiate findings or resolve issues with an Oracle sales agreement. Treat an audit as part of the broader licensing discussion, not a unilateral process.)
The Future of Java Licensing
Oracle’s Java licensing will continue to evolve, likely in ways that further Oracle’s revenue interests.
Knowing the past changes, we can anticipate a few future trends and prepare accordingly:
- Shorter free support windows: Oracle’s No-Fee Terms for LTS versions might become less generous. They may shorten the free update period or impose more conditions on using the “free” LTS versions. For example, Java 21, released in 2023, might not get the full several years of updates before the next LTS (Java 25) comes, pushing customers to upgrade or pay sooner.
- Refinements to the employee metric: If customers push back hard, Oracle could introduce tiered or hybrid metrics. Perhaps a smaller-business edition with a capped price or bundles that include a fixed number of employees. Alternatively, Oracle might double down, making the employee metric even more comprehensive (covering more Oracle software under one count, for instance).
- More audits and compliance checks: As the Universal Subscription model matures, expect Oracle to enforce it aggressively. Many initial Java SE subscriptions signed in 2019–2020 for three-year terms have come up for renewal around 2022–2023. Companies that chose not to renew (maybe thinking they could risk it or switch to OpenJDK) could find themselves on Oracle’s audit radar in 2024 and 2025. Audit activity is likely to increase as Oracle hunts down revenue from lapsed subscribers.
- Potential price increases: Oracle could increase the list price per employee over time. Even if the tiers remain, $15 per employee might rise, or the discount thresholds might shift. Keeping an eye on Oracle’s price lists each year is wise.
On the brighter side, the industry is also responding. More organizations are adopting OpenJDK, and tooling for managing Java versions and patches outside Oracle is improving.
We may see Oracle eventually adjust its strategy if enough customers abandon Oracle JDK. But for now, plan for a future in which Java is a paid asset and Oracle finds new ways to monetize it.
Pro Tip: Oracle’s next change will always be toward monetization — plan ahead. (Assume that “free” periods will shrink and costs will rise, and you won’t be caught off guard.)
Checklist – How to Stay Prepared for Java Licensing
Staying compliant and optimizing your Java licensing requires ongoing attention.
Use this checklist to prepare for renewals or potential audits, and to maintain control over your Java usage and costs:
✅ Inventory all Java installations and versions: Maintain an up-to-date inventory of where Oracle Java is installed in your environment (servers, VMs, desktops, applications) and which version is running. You can’t manage what you don’t know you have.
✅ Map each installation to a license type: For every Java instance, know which agreement governs it. Is it an old Java 8 under BCL? Is it Java 11 under an OTN (which means non-production only)? Java 17 under NFTC? Or Java 8/11 being covered by your current subscription? This mapping will reveal any areas that are not covered by a proper license or support plan.
✅ Validate your employee count (if on Universal Subscription): Work with HR to get an accurate, contract-defined employee count if you’re in the Oracle Universal Subscription. Exclude any roles or groups not required by the contract. Keep documentation of how you arrived at this number, in case Oracle questions it during renewal or an audit.
✅ Set reminders well before renewal: Mark your calendar 12 months and 6 months before your Java subscription term expires. Use that time to review usage, consider alternatives, and engage Oracle early if needed. A rushed renewal in the final month benefits Oracle, not you.
✅ Maintain an OpenJDK fallback plan: Even if you’re using Oracle Java today, you can switch to OpenJDK or another vendor’s Java. Periodically test your critical applications on OpenJDK. This way, if Oracle’s terms become unbearable, you have a plan B ready to go. The mere existence of this option can also be leveraged in discussions with Oracle.
By following these steps, you’ll avoid last-minute scrambles and be in a stronger position whether you choose to stay with Oracle’s Java licensing or move to alternatives.
Pro Tip: Compliance is temporary — preparedness is permanent. (You might be compliant today, but Oracle’s next change could put you at risk. Ongoing diligence is key.)
📚 Related Reading – Dive Deeper into Oracle Java Licensing Strategy
- Oracle Java Licensing FAQs: Your Questions Answered
- Oracle Java Licensing Changes 2024 – The End of the NFTC Era
- Oracle Java Licensing Changes 2025: Top 20 Insights and Strategies
- How to Calculate Oracle Java SE Licensing Costs
- Oracle Java 8 Licensing Explained: Security Patches and Subscription Requirements
- Oracle Java Licensing for Legacy Versions (Java 6, 7, 8, 11) – What Requires a License?
- What Does Oracle’s 2023 Employee-Based Java Licensing Model Mean?
- 20 Things ITAM Professionals Must Know About Oracle Java Licensing Compliance in 2025
- Embedded Java Licensing and OEM Agreements for Java SE
- Java SE Renewal Guide for Enterprises (2026 Edition)
- Which Versions of Java Are Free?
- 2019 Java Licensing Changes
- Oracle Java Licensing: A U.S. Legal Perspective
- 20 Things CIOs Must Know About Oracle Java Licensing and Audit Risk in 2025
- Oracle Java Licensing Models: Evolution and Pricing
- Oracle Java JRE Licensing: Key Aspects and Insights
- Oracle Products Bundling Java SE Licenses
- Oracle Java Commercial Features
- Alternative Java Options: Exploring OpenJDK and Others
- Oracle Java Audit Guide – How to Fight Back
- Oracle Java Licensing Negotiations – Enterprise Guide
- How to Renew Java SE Legacy Metric – What Oracle Isn’t Telling You
Java Licensing FAQs
Q1: Is Oracle Java free to use or not?
A: Oracle’s Java (Oracle JDK) is no longer universally free for commercial use. Historically, Java was free under Sun/Oracle’s Binary Code License; however, changes starting in 2019 limited its free use. Today, Java is free for personal, development, and testing purposes (and Oracle’s latest LTS releases are temporarily free under NFTC). We recommend that you read this Oracle Java licensing guide.
However, if you use Oracle’s Java in production for business, you likely need to pay for a subscription. The only exceptions are using Oracle’s JDK within certain Oracle products or sticking to open-source Java implementations.
In summary, running Oracle JDK in a corporate environment without a license after 2019 will put you out of compliance unless it’s a version covered by the NFTC free period (and even those eventually require a subscription when the free period lapses).
Q2: What are the BCL, OTN, and NFTC license terms in simple terms?
A: These acronyms refer to different license agreements for Oracle Java over time:
- BCL (Binary Code License): The old license (pre-2019) that made Java free for almost all uses.
- OTN (Oracle Technology Network) License: Introduced in 2019, this license requires a paid subscription for commercial use; free use is permitted only for non-production purposes (such as personal or development/testing).
- NFTC (No-Fee Terms and Conditions): Introduced in 2021 for Java 17+, it allows free use (even in production) for a limited duration (until one year after the next major release). After that, you must pay or upgrade.
In essence, BCL was very permissive, OTN is restrictive, and NFTC is a temporary free license. If your organization uses Oracle JDK, check which license applies to the version you have to determine if you owe any fees.
Q3: How does Oracle’s new Java SE Employee licensing model work?
A: Oracle’s Java SE Universal Subscription (since 2023) is an employee-based license model. This means the cost is calculated based on your total employee headcount, not how many use Java. You pay a monthly fee per employee (with tiered pricing that gets slightly cheaper at higher headcounts). In return, you get the right to deploy Oracle Java on any number of servers and desktops within your organization. The important details are:
- You must count all employees, including part-timers and relevant contractors, as defined by Oracle.
- The subscription covers all uses of Java SE (server, desktop, cloud) within the company.
- You no longer have to count specific installations or CPUs – it’s “all you can eat,” but tied to an enterprise-size metric.
For many, this simplifies license management, but it can also significantly raise costs. For example, a company with 100 Java users might have previously paid for 100 NUP licenses; now, if it has 1,000 employees total, it must pay for all 1,000 licenses. Companies with large workforces need to carefully assess this model and determine whether they truly need Oracle’s Java on every machine or can reduce the scope.
Q4: We have a legacy Java SE subscription (Named User Plus/Processor). Can we renew it instead of switching to a per-employee plan?
A: Oracle is trying to phase out those legacy subscriptions. Officially, if you have an existing contract, you may renew it for now, but Oracle will require you to verify that your Java usage hasn’t grown beyond your current license counts. In practice, Oracle often uses the renewal point to encourage customers to switch to the new employee-based plan. They may request an audit (“verification”) before renewal, and many organizations have reported that Oracle representatives refuse to extend the old agreements without changes. Some renewal quotes come with new terms that prohibit another renewal on the old model, effectively giving you one last term before you must migrate to the employee metric. So while a renewal might be possible in the short term if your usage is small and stable, be prepared: your next renewal will likely need to be under the new model. It’s wise to negotiate and plan accordingly (or consider alternatives) rather than banking on indefinitely renewing the old licensing terms.
Q5: How can we avoid or minimize Oracle Java licensing costs?
A: There are a few strategies to control costs:
- Use OpenJDK or a Third-Party Java Distribution: Switch to a free OpenJDK distribution for your Java runtime. This immediately removes the need to pay Oracle for licenses. OpenJDK is the same codebase as Oracle JDK (minus some extras), and vendors like Amazon, Azul, IBM, and others offer builds with ongoing updates. Many companies have successfully migrated without issues.
- Stay on NFTC and Upgrade Frequently: If you prefer Oracle’s JDK, you could try to stay within the NFTC free usage window by upgrading to each new LTS release within a year after it comes out. This requires an active upgrade cadence (e.g., moving from Java 17 to 21 to 25, etc., on Oracle’s timeline), which may not be practical for all environments.
- Negotiate a Smaller Scope with Oracle: Oracle’s default stance is all-employee licensing, but extremely small companies or specific use cases may be able to negotiate a more tailored approach, such as licensing only certain subsets (although this is rare). Oracle still had a “Processor” option in price lists for unusual cases—it’s worth discussing whether your Java use is confined to servers and you have a large employee count (this would require high-level negotiation).
- Leverage Third-Party Support: If you need security updates for older Java versions (like 8 or 11) but don’t want Oracle’s subscription, third-party support firms can provide patches (for example, companies like Azul offer support for Java 8/11 for a fee typically lower than Oracle’s).
- Scope Reduction: Ensure you’re not using Oracle JDK where it’s not necessary. Sometimes, only a few applications truly require Oracle-specific Java (if any); the rest can use open-source alternatives. Reducing Oracle JDK usage to the bare minimum reduces the required licensing.
In summary, the most straightforward way to avoid Oracle fees is to adopt non-Oracle Java runtimes. If that’s not feasible, then proactive management and negotiation are your tools to keep costs down.
Read more about our Oracle Java Licensing Services.