java licensing

A Guide To Oracle Java Licensing Changes 2025

Recent Oracle Java licensing updates:

  • 2019: Oracle introduced a subscription model for Java updates after Java 8, patch 211.
  • 2021: Oracle released the No-Fee Terms and Conditions (NFTC), allowing free commercial use starting from JDK 17.
  • 2023: Oracle transitioned to the new Employee for Java SE Universal Subscription model, replacing the older licensing models (Named User Plus and Processor).
oracle java audit

Read our Java Licensing FAQs

**ALERT** Has Oracle reached out to you about a Java license?

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.

How We Can Help

We are former Oracle auditors who offer specialized assistance in Java licensing:

  • Licensing Assessment: They guide you in identifying which Java deployments require a license.
  • Expert Advisory for Audits: If you manage your Java licensing yourself, Redress Compliance provides expert advice to counter Oracle during audits and supports communication regarding Java licensing issues with Oracle.
  • Audit Defense and Licensing Strategy: We assist in developing audit defense strategies and negotiating better discounts for Java license purchases.
  • Retroactive Licensing -We have helped over 100 organizations avoid paying for retroactive usage.
  • Java Downloads—Does Oracle have security logs of your downloads and updates? Don’t worry. We know how to counter those claims.
Java Licensing and Audit Strategy – What CIOs Need to Know

Contact us now to avoid paying audit fees to Oracle for Java.

Oracle Java Licensing Changes 2019-2025

Oracle Java Licensing Changes 2019-2025

Oracle’s approach to Java licensing has transformed significantly over the past decade.

Key milestones include:

  • 2010 – Oracle Acquires Sun: Oracle acquired Sun Microsystems (the creator of Java) in 2010 and initially continued offering Java under Sun’s free Binary Code License (BCL). Java was free to download and use commercially under terms similar to Sun’s model, so no immediate changes occurred​. For several years after, businesses could use Oracle’s Java SE without paying license fees.
  • 2013 – Commercial Features Introduced: Oracle began monetizing Java by isolating certain features as “Commercial Features.” Tools like Java Flight Recorder and Mission Control were made premium add-ons requiring a paid license for production use​. Regular Java SE usage was still free, but these advanced features embedded in the JDK now carried a cost if enabled in production.
  • 2018 – Java SE Subscription Launched: The first major shift came in 2018 when Oracle announced a Java SE Subscription model​. This marked the end of unlimited free updates for commercial Java use. Oracle began charging organizations for Java updates and support, using familiar Oracle license metrics:
    • Named User Plus (NUP): counting the number of named end-users or desktops using Java.Processor: counting the server CPUs (cores) running Java, using Oracle’s core factor calculations.
    Under this subscription, if a company wanted updates/support for Java 8 (or later) in production, they had to pay per user or processor. Oracle’s price list at that time was about $25 per month per processor for servers​or a per-user fee for desktop deployments. This was a consumption-based model using the NUP and Processor metrics that Oracle also applied to other software licenses.
  • Jan 2019 – End of Free Java 8 Updates: Oracle stopped providing free public updates for Java SE 8 (the most widely used version) for commercial users after January 2019​. From that point, only paying customers with a Java SE subscription could get security patches for Java 8. Businesses still using Oracle JDK 8 in production without a subscription would fall out of compliance if they applied updates released after this date. This change caught many by surprise and effectively ended “free Java” for commercial use unless companies migrated to alternatives (like community OpenJDK builds)​.
  • Apr 2019 – Oracle Technology Network (OTN) License: In April 2019, Oracle introduced a new OTN License for Java SE​. Under the OTN license, Oracle JDK could still be downloaded for free, but free use was restricted to specific purposes:
    • Personal, non-commercial use on an individual’s devices.Development, testing, or demonstration use.
    Any other commercial or production use of Oracle JDK under the OTN license now requires a paid subscription​. In effect, starting with Java 8 update 211 and Java 11, Oracle’s free JDK downloads were for dev/test only – running those in a business app without a subscription violated the terms. This significantly tightened Java’s licensing.
  • 2021 – “No-Fee Terms and Conditions” (NFTC) for New Releases: In September 2021, alongside Java 17 (a Long-Term Support release), Oracle introduced the No-Fee Terms and Conditions (NFTC) license​. This was an attempt to win back goodwill by making the latest Java version free for a while. Under NFTC, Oracle JDK 17 (and later releases like 18, 19, etc.) could be used for free in production by anyone. Still, only until the next LTS version plus one year: The latest LTS release (e.g., Java 17, and now Java 21) is free for all purposes during an initial period (until one year after the next LTS comes out)​.
    • No-cost use is time-limited: Once that free period ends, continued use of that version in production requires purchasing a subscription or upgrading to a newer Java version within its free window​.NFTC comes with no support and no right to redistribute Oracle’s binaries. It’s essentially Oracle’s way of letting people use the newest Java for free, “at their own risk,” encouraging constant upgrades​.
    Example: Oracle JDK 17 was free under NFTC starting in 2021. However, after September 2024, Oracle stopped providing free updates for Java 17​. At that point, companies had to either move to Java 21 (the new free LTS) or start paying for Java 17 updates via subscription. NFTC made it possible to avoid Java fees temporarily if you always stay on the latest version, but enterprises needing stability on an older version would eventually have to pay.
  • Jan 2023 – New Employee-Based Java SE Universal Subscription: Oracle’s most dramatic change came in January 2023. Oracle eliminated the old NUP and Processor subscription model and introduced a Java SE Universal Subscription priced per-employee​. Under this model:
    • Organizations must license Java for all employees, not just the ones using it. Oracle defines ” employee ” as full-time, part-time, temporary, and contract​. The subscription fee is a fixed rate per employee per month, with pricing tiers based on total employee count (larger enterprises get a lower per-employee rate)​. For example, at launch, it was roughly $15 per employee/month for small organizations (under 1,000 employees), dropping to ~$5 for very large ones​. This acts like an enterprise-wide license – you can deploy Oracle Java on unlimited devices but pay according to your company’s size. A company with 500 employees would pay about 500 × $15 = $7,500 per month (~$90,000/year) list price​, even if only a handful of those employees use Java. Oracle simultaneously discontinued selling the older NUP/Processor Java subscriptions to new customers​. The legacy model was essentially replaced overnight by the employee metric.
    In some cases, the cost increase was 3- 5 times higher than the old model for the same usage​. Oracle positioned this as a “universal” license for simplicity, but many customers saw it as a drastic price hike.
  • 2024–2025 – Enforcement and Audits Ramp Up: Oracle has aggressively enforced the new model. Customers on older Java subscription contracts have been pressured to transition to the employee-based model at renewal​. By 2024, Oracle will have included Java in its standard license audits and begun “stealth” audits targeting Java usage​. Oracle also reminded users that after the free period for Java 17 ended (Sept 2024), running Oracle JDK 17 in production without a subscription would violate licensing​. In short, Oracle uses every opportunity to ensure that any business running Oracle Java pays under the new scheme.

Bottom Line: Java licensing evolved from free use under Sun to Oracle’s introduction of paid support subscriptions (2018), to a strict subscription requirement for updates (2019), and now to an all-encompassing per-employee subscription model (2023)​.

Read about Are You Facing Retroactive Licensing Fees for Java Usage and our unique services guarantee.

Read Oracle Java Licensing Changes – 15 Things CIOs Need to Know.

Did Oracle Change the Java License?

Did Oracle Change the Java License?

Did Oracle change the Java license?

Yes. Oracle’s Java licensing has changed substantially over the years. In brief:

  • Until 2019, Oracle provided Java updates for free and didn’t strictly enforce licenses for commercial users.
  • In 2019, Oracle began requiring paid subscriptions for businesses to continue using Oracle Java (ending the “free Java” era for commercial use).
  • In 2021, Oracle made Java 17+ free to use without charge under a new license (NFTC), but only for a limited time.
  • In 2023, Oracle introduced an employee-wide subscription model, meaning companies must pay per employee for Java, not per server or named user, as before.

If your company hasn’t adjusted its Java usage or procurement strategy since these changes, you could be at risk of non-compliance or unexpected costs.

Read the Oracle Java Licensing Changes Timeline.

Legacy License Model vs. New Employee-Based Model

Oracle’s Legacy Java Licensing (2018–2022): When Oracle first required paid Java subscriptions, it used traditional Oracle metrics:

  • Named User Plus (NUP): An NUP license entitles one named person (or a device, in some cases) to use the software. For Java SE, an NUP was essentially a per-user or per-desktop license. Organizations had to purchase an NUP for each unique individual or system that would use Java (with Oracle often imposing a minimum number per processor in server environments, as they do for databases).
  • Processor License: This metric counted the number of processor cores (adjusted by a core factor) on the servers where Java was installed​. Each processor license allowed unlimited Java use on that server’s CPU cores. Oracle’s core factor table (used also for databases) meant that an 8-core server might count as four licenses if the factor is 0.5 per core​. This was suitable for back-end servers or VMs where counting individual users was impractical.

Under the legacy model, a company could license Java on specific machines or for specific users. For example, an enterprise running Java on four servers (16 total cores) and 100 developer laptops might buy eight processor licenses for the servers (if the core factor is 0.5) and 100 NUPs for the laptops.

This model was granular—you paid for the environments running Java.

If usage decreases, you could potentially reduce licenses at renewal. It was similar to licensing a database or middleware product.

Employee-Based Universal Subscription (2023–present): Oracle’s new model highlighted the above granularity.

The “Employee for Java SE Universal Subscription” requires counting every employee in your organization​:

  • All Employees Count: Oracle’s definition of Employee includes full-time, part-time, temporary workers, and contractors who support your business​. Essentially, anyone on your payroll or working on your operations must be counted – “basically, everyone except your dog,” as one analyst quipped​. This count is then used to price the Java subscription, regardless of how many of those people use Java.
  • One Size Fits All: The license covers unlimited Java use across the company (up to a very high cap of 50,000 processors, which few will hit)​. You no longer need to track which devices have Java – in theory, any use is allowed as long as you’ve paid for all employees.
  • No Partial Coverage: Importantly, Oracle does not allow partial licensing (you can’t, say, just license your IT department or a subset of users). It’s all or nothing – the entire employee count is the unit​. This prevents companies from minimizing license counts by limiting deployment; if you use Oracle Java anywhere in production, you’re expected to license the whole organization.

Cost Implications: The employee model can be straightforward for small companies or those with Java on nearly every desktop. But many companies found that under the new model, their costs would skyrocket compared to the legacy model:

  • You pay for many users who derive no benefit if you have a large employee base but limited Java usage. For example, a firm with 5,000 employees and only a few Java-based apps would still have to pay for 5,000 Java licenses.
  • On the other hand, if you run Java on hundreds of servers enterprise-wide, the employee model could be cost-effective or at least predictable (akin to an unlimited site license).

Oracle did introduce volume discounts (per-employee price drops as count increases) to soften the blow for big organizations. For instance, a huge enterprise with 45,000 employees might pay around $5.25 per employee/month​, whereas a smaller company pays $15. However, even with discounts, many clients saw the new model as Oracle charging for “shelfware” (licenses for people who may never run a Java application).

Existing Contracts:

Oracle has stated it will honor existing Java SE subscription contracts until they expire​. So, if you signed a 3-year deal in 2022 using NUP/Processor metrics, you can continue under that until renewal.

At renewal, though, Oracle’s sales teams strongly encourage customers (some might say pressuring) to switch to the employee model​. There have been reports of Oracle refusing to renew under old terms or adding clauses to force migration​. Essentially, the legacy metrics are being phased out.

In summary, the legacy model was usage-based (pay for what/where Java is used) while the new model is user-based (pay for everyone, unlimited use).

This shift aligns with Oracle’s goal of maximizing revenue and simplifying compliance, but it can dramatically increase Java license costs for many organizations​. Businesses must adapt by either budgeting for the broader scope or reducing reliance on Oracle’s Java (as discussed later).

Read Oracle New Java SE Universal Subscription (2023): An Advisory for SAM Managers and Licensing Professionals.

How does Java licensing work now?

How does Java licensing work now?

Oracle’s current commercial Java license is the Java SE Universal Subscription, which is priced per employee:

  • Enterprise-wide coverage: If you subscribe, you must count all employees (and equivalent contractors) in your organization. Even if only 10 developers use Java, a company of 500 employees is expected to buy 500 Java licenses under this model.
  • No partial licensing: Oracle no longer sells small packs or server-based licenses for Java. It’s an all-or-nothing approach – you either cover the entire organization or rely solely on the free usage terms for specific Java versions.
  • Costs: The list price ranges from about $15 per employee per month for smaller organizations to around $5–6 for large enterprises (after volume discounts). This is often much higher than the old model of licensing a limited number of users or processors.
  • Existing Java licenses: If you had an older Oracle Java SE agreement (e.g., per processor), you can continue under that agreement until it expires. However, at renewal, Oracle will almost certainly transition you to the new employee-based model (the old licensing options have been discontinued for renewals and new sales).
  • Support and updates: The subscription gives you the right to use Oracle’s Java on any number of company-wide devices and includes all security updates and support. As long as your subscription is active, it covers all Java versions you might need (Java 8, 11, 17, etc.).

Impact on businesses: This model often raises costs for companies that previously licensed only a subset of users or servers.

Many organizations are re-evaluating whether they need Oracle’s Java because of the increased compliance cost. (We’ll discuss alternatives to paying these fees later.)

Oracle Java Licensing Changes in 2023 – What CIOs Must Know

Did Oracle make Java free again?

Did Oracle make Java free again?

You might have heard that Oracle “made Java free,” starting with Java 17.

Here’s what happened:

  • In September 2021, Oracle announced that Java 17 and future releases would be free under a new NFTC license. Companies could deploy Oracle JDK 17 in production without paying Oracle fees. This reversal of the 2019 policy was very welcome news to the Java community.
  • However, this free usage comes with specific conditions: the free period is time-limited. Oracle provides Java 17 updates for free only for a certain period (until September 2024). After that date, there will be no more free patches—if you want to continue receiving security updates for Java 17 from Oracle, you’ll need to purchase a subscription.
  • Oracle intends to make each new Long-Term Support (LTS) Java version free for a few years and then require a paid subscription for ongoing support. For example, Java 21 (released in 2023) is also free under NFTC initially, but it will likely require payment for updates a year or two after its release.
  • Older Java versions are not free: This NFTC free license only applies to Java 17 and later. Suppose you are using Oracle Java 8 or Java 11. In that case, those are not suddenly free – they still require a subscription for any commercial use because Oracle did not retroactively apply the NFTC terms to older releases.

In essence, Oracle did make Java “free again” for the latest versions, but not forever. Think of it as Oracle giving out free use of the newest Java to encourage upgrades and goodwill, but with the expectation that businesses will either upgrade continuously or eventually start paying for support when the free period ends.

For businesses, this means you can run the latest Oracle JDK (17, 19, 21, etc.) without a license cost during its initial support window.

However, once that free window closes, you must either plan to upgrade regularly or budget for a subscription.

Do you need an Oracle Java license?

Do you need an Oracle Java license

You likely need a license if your organization uses Oracle’s Java in production and isn’t exclusively on the latest free version.

Here’s a quick guide:

  • Java 8 (and earlier): Yes. Using Oracle Java SE 8 in production today requires a paid license. Oracle stopped providing free updates for Java 8 after January 2019 (Update 202). You should have a Java SE subscription if Oracle’s Java 8 is on your servers (beyond those old updates). Remember that JRE also requires licensing.
  • Java 11 (and Java 12–16): Yes. Oracle Java 11 and other intermediate versions were never free for commercial use under Oracle’s license. Running Oracle JDK 11 in production without a subscription violates Oracle’s terms. (If you need Java 11 free, you’d have to use an OpenJDK build, not Oracle’s – see alternatives below.)
  • Java 17: Not yet. Oracle Java 17 is free to use under the NFTC license up to a certain security patch.. You do not need to pay for Oracle JDK 17 until its free update period ends. After the cutoff (Sept 2024), if you continue to use Oracle Java 17 and want to apply new security patches, you will need a subscription (or switch to another solution for updates).
  • Java 19, 20, 21, etc.: These follow the same pattern as Java 17. They are free under NFTC during their initial release period. When that period is over, you must upgrade to the next version or start paying for a subscription to keep getting updates.

In summary, any Oracle Java version older than 17 you use in production today requires a paid Oracle license (subscription). Oracle Java 17+ is free for now, but will eventually require a license for continued support.

If you’re unsure about your situation, a good rule of thumb is: unless you are only using Oracle JDK 17 or later and plan to keep upgrading, assume you need a Java license or take steps to move to a free alternative. This proactive approach will keep you safe in case of an Oracle audit.

(Remember, using open-source Java (OpenJDK) does not require an Oracle license. The licensing question only applies to Oracle’s distribution of Java.)

Read how Oracle Java 8 is licensed.

Is Java still free?

Java, the platform, is free, but Oracle’s Java distribution is not free for long-term commercial use.

Here’s the distinction:

  • Open-source Java (OpenJDK): The OpenJDK project is the open-source reference implementation of Java. It’s available under a GPL license and is free to use, even in commercial settings. This means you can get Java binaries from open-source providers and use them without cost or restrictions.
  • Oracle’s Java (Oracle JDK): Oracle’s branded Java distribution is built on OpenJDK but comes with Oracle’s license terms. As we’ve seen, Oracle allows free use of its JDK only for the latest versions and only for a limited time. Using Oracle JDK beyond those terms requires a subscription.
  • You can run your Java applications for free using an OpenJDK-based JDK (from vendors like AdoptOpenJDK, Amazon Corretto, etc.). Many enterprises have already standardized these free versions to avoid Oracle fees. Java’s core technology remains open-source; Oracle charges for its build and support services.

So, yes, Java as a language and platform is open-source and free. What’s changed is that Oracle wants to charge for the convenience and support of their Java binaries for long-term enterprise use.

For businesses, the takeaway is that you are not obligated to pay Oracle to run Java. You can choose free alternatives (which we will detail soon).

Oracle’s policies do not make Java itself non-free—they only affect those using Oracle’s provided Java executables beyond the free usage terms.

What about Oracle Java 17?

Oracle Java 17 was initially free under the NFTC license, but that changed in October 2024.

  • Free until September 2024: You can use Oracle Java 17 in production without paying fees. Oracle released quarterly security updates for free, just like it did for paying customers.
  • After October 2024, Oracle will no longer provide free public updates for Java 17. If new vulnerabilities or bugs are discovered, patches are only available to customers with a Java SE subscription. The software won’t suddenly stop working, but:
    • Security patches are no longer free
    • Staying up to date now requires a paid subscription
    • Running it unpatched may expose your systems to risk

If you want to keep using Java 17 securely without paying Oracle, you’ll need to:

  • Switch to an alternative distribution (like Eclipse Temurin or Amazon Corretto)
  • Or subscribe to Oracle Java SE for continued support

So, what are your options when Java 17’s free window closes? You have two main choices:

Option A: Continue using Java 17 without updates

You can still use Oracle JDK 17 without paying, but you’ll be stuck on the last free version released before October 2024. Oracle no longer offers free security patches.

  • No cost, but you take on security risks
  • Any new vulnerabilities discovered after October 2024 won’t be fixed unless you have a subscription.
  • Some companies might choose this short-term approach to avoid paying, but it’s risky and unsustainable for most environments.

Option B: Upgrade to Java 21 or a newer version

Java 21 (released in September 2023) is the current Long-Term Support (LTS) version. It’s still free under the NFTC license, and Oracle is providing free quarterly patches, at least until September 2026.

  • You can migrate to Java 21 and keep getting free updates
  • It’s a practical way to stay secure without paying Oracle
  • Expect similar terms: once the free patch period ends, updates will require a subscription

This “hop from one free LTS to the next” approach works, but it needs planning. You’ll need to migrate again when Java 21’s free window closes.

Many organizations choose Option B: They enjoyed free Java 17 and will upgrade to Java 21 to continue on the free path. This does require effort—testing and deploying a new Java version—but it avoids direct licensing costs.

The key point: Oracle Java 17 is free today, but if you don’t plan to upgrade or stop using it by the end of its free support, you’ll need a paid license to stay secure. Make sure your IT roadmap accounts for this.

(One more note: After Oracle’s free support ends, other providers may still offer Java 17 updates as part of their OpenJDK support. Switching your Java runtime to one of those providers is another way to extend free usage without paying Oracle.)

Read if OpenJDK is free or not.

Oracle Java Audits and Compliance

Oracle Java Audits: How They Work and What Triggers Them

With the monetization of Java, Oracle’s License Management Services (LMS) and partners have turned a keen eye to Java deployments. Java audits have become a reality for organizations that previously assumed “Java is free.”

Here’s how these audits typically proceed and what might trigger one:

  • Why Oracle Audits Java: Oracle now sees Java as a significant revenue opportunity, especially after 2019. Auditing for unlicensed Java usage is a way to enforce the subscription model and convert non-paying users into customers​. By 2023, Oracle even folded Java into its standard audit practices (meaning a routine Oracle license audit will include Java checks)​.
  • Common Audit Triggers: Oracle uses various data points and tactics to identify targets:
    • Download Activity: Oracle tracks Java downloads from its website. If a company’s domain or IP has been downloading Java installers or updates (especially after public free updates ended for that version) with no corresponding license on record, Oracle flags it​. For example, downloading Java 8 update patches post-2019 without a subscription is a red flag.
    • Expired Subscriptions: If you had a Java SE subscription and let it lapse, Oracle knows when it ended. Those who don’t renew (or renew fewer licenses than before) may get audited since Oracle suspects you might still be using unlicensed Java​.
    • Ignoring Inquiries (Soft Audits): Oracle often starts with a friendly email or call inquiring about your Java usage – this is a “soft audit.” If you ignore these feelers or brush them off, Oracle may escalate to a formal audit​. Not responding will not make them go away; it often increases Oracle’s suspicion of non-compliance.
    • Minimal Oracle Relationship: Interestingly, companies that don’t buy other Oracle products can be prime targets. Oracle knows if you’re not an existing customer, but Java is in use (they might infer from employee backgrounds, tech stacks, or industry). Those “low-hanging fruit” with no current Oracle spend are attractive targets since an audit can turn them into paying customers​. Conversely, account managers might approach Oracle’s big-spending customers first (a softer approach) before any official audit notice.
  • Soft Audit vs. Formal Audit:
    • A soft audit is usually an email from Oracle’s Java licensing team or a questionnaire asking you to self-report Java usage​. It’s informal (not a contractual audit invocation), but how you handle it is critical. Information revealing compliance gaps can lead to sales pressure or a formal audit. However, cooperating and purchasing a subscription sometimes staves off a full audit.
    • A formal audit is an official notice invoking Oracle’s audit rights (typically under your Oracle Master Agreement or license agreement terms). This involves a written notification, assigned auditors (either Oracle LMS or a third-party firm authorized by Oracle), deadlines, and a more rigorous process. Once formal, you’re usually obligated by contract to comply with the audit request.
  • Data Collection Process: In an audit, Oracle will require you to run discovery tools to collect data on all Java installations in your environment​. They may provide Oracle-specific scripts that scan for Oracle JDK/JRE versions.
    Key data collected include:
    • Number of installations of Oracle Java, with version and patch levels​.The hosts or devices where Java is installed, including hardware details (to check CPU counts for legacy licensing or to gauge usage scale). Are any commercial features used on older Java versions (e.g., if on Java 8, did you use Flight Recorder or Mission Control without a license? Oracle might ask)​.Deployment in virtualized environments: Oracle often inquires about VMware or other virtualization since, in Oracle’s view, certain setups might require licensing all underlying hosts. (For example, Oracle’s partitioning policies could count all physical hosts in a VMware cluster where Java VMs run, potentially inflating license needs​.)They might also ask for the Java vendor of each installation (Oracle vs OpenJDK vs others). Tip: Only disclose Oracle installations unless contractually required – OpenJDK or third-party JDKs are not subject to Oracle’s license, and you don’t want to confuse the data​.
    Oracle’s script results can sometimes be overly inclusive (detecting old directories or installations not actively used). So, verifying the inventory before submission (more on that in the defense section).
  • What Oracle Can Detect Remotely: Aside from the audit process, where you provide data, Oracle can detect Java usage, which is limited. Java does not secretly report usage to Oracle. Oracle primarily knows about your Java use if:
    • You download software/updates from Oracle’s sites (they log it)​.
    • You opened an Oracle support ticket mentioning Java.
    • You attest to it during other contract renewals (Oracle sometimes asks customers to certify Java usage).
    • Of course, if a whistleblower or consultant tips them off. Generally, Java doesn’t have an automatic “phone home” feature that reveals usage.
  • Audit Outcome and Penalties: Oracle will present an audit report after analysis. If they find unlicensed use, they typically calculate a financial claim. Often, Oracle aims to sell you a Java subscription in the future rather than collect huge back penalties. In practice, the resolution might be as follows: Oracle asks you to purchase a certain number of Java subscriptions (usually under the new model) to cover future use
    • and waives past unlicensed use fees as long as you buy from now on. This is positioned as a concession. Alternatively, they might bill you back for support fees for the period you used Java without support. Officially, Oracle’s policy is that new Java subscriptions don’t cover past usage so that they could charge retroactively. In many cases, however, Oracle leverages the threat of back fees to get a larger forward commitment.
    The sums can be significant. There are reports of audit claims in the millions for large enterprises that are out of compliance​. Even mid-sized firms have seen hefty compliance quotes, especially under the per-employee model. For example, a company of 2,000 employees might be told they need 2,000 licenses at $12 each per month = $24,000/month in the future, plus perhaps some one-time charge​r. This is why some critics call these Java audits “extortionate” – the sticker shock is real if you’re unprepared.

Your options to avoid Oracle Java fees

You are not locked into Oracle’s Java. Here are ways to continue using Java without paying Oracle:

  • Use open-source Java – Switch your systems to free OpenJDK distributions (from providers like Eclipse Adoption, Amazon Corretto, Azul Zulu, etc.). These are functionally equivalent to Oracle JDK but have no license cost. This move alone eliminates Oracle Java fees for most companies.
  • Get non-Oracle support if needed—If you require professional support or long-term updates for Java, consider third-party vendors (e.g., Red Hat or Azul) that offer support for OpenJDK at a fraction of Oracle’s price. You’ll still use free Java with an optional support contract for peace of mind.
  • Stay on Oracle’s free track – Alternatively, you could continue using Oracle’s JDK but commit to upgrading promptly to each new LTS version. By always moving to the latest free version (17 to 21 to 25, and so on), you remain within Oracle’s free update window and avoid subscription costs. This strategy requires diligent upgrades but can work if your team is up to it.

Many organizations have already migrated to OpenJDK, sidestepping Oracle’s fees entirely. Evaluate which option (or combination) makes the most sense, given your applications and compliance risk.

The key is that you have a choice – you don’t necessarily have to pay Oracle to use Java.

Read how Oracle Java 6 licensing works.

Preparing for Oracle Java Audits

Preparing for Oracle Java Audits

Although facing an Oracle Java audit can be daunting, with preparation and the right approach, you can significantly reduce your risk and exposure.

Here are practical strategies for audit preparation and defense:

  • Maintain a Detailed Java Inventory: Long before an audit, organizations should know where Oracle Java is installed and being used. Discover all instances of Java in your IT estate – servers, VMs, desktops, applications, build pipelines, etc. Use IT asset management tools or scripts to find all. java Execute and identify their versions​. Don’t forget transient environments like Docker containers or cloud VMs that may have Java baked in. This inventory is the foundation of compliance. (If you miss even one obscure Java installation, and it’s later found, Oracle will require licensing your whole enterprise under the employee model – an expensive surprise​.)
  • Track Usage and Purpose: For each Java instance, determine what it’s being used for. This helps in two ways:
    1. You might find that some Java installations are only used with specific licensed products. For example, an Oracle WebLogic Server installation includes a restricted-use Java license for running WebLogic​. If you confirm a product with Java rights exclusively uses a Java runtime, you may not need separate Java licenses for that instance (more on included licenses later).
    2. Identify non-production vs production use. Java used purely in development or testing might be covered under the OTN free use terms. However, be cautious: if those environments ever connect to production workflows, Oracle might not consider them exempt.
  • Clean Up Unused Java Installations: It’s common to find outdated or unused Java versions lingering on systems. Uninstall Java from servers or PCs that don’t need it. Decommission old versions if you’ve migrated to newer ones (but ensure the new ones are properly licensed under NFTC or subscription). Reducing the footprint of Oracle JDK in your environment will directly reduce compliance exposure. Do this cleanup before any audit data gathering – once you’re in an official audit, removing software might need to be disclosed. Better to tidy up proactively.
  • Respond Cautiously to Oracle Inquiries: If you receive an email inquiry about Java usage, involve your software licensing team or legal counsel before responding. You do not want to inadvertently admit non-compliance or provide misleading information. Responding by acknowledging the request and perhaps seeking clarification or time to assess rather than ignoring it is often advisable. Silence can prompt Oracle to escalate​.
  • During an Audit – Provide Only Required Data: In a formal audit, stick strictly to your contractual obligations. Typically, you only need to report on Oracle Java installations. Do not volunteer information about non-Oracle Java (OpenJDK) usage – it’s irrelevant to Oracle’s compliance (and protected by open-source licenses)​. If Oracle’s audit script gathers data on all Java instances, you might clarify which ones are Oracle versus third-party. Keep communications factual and minimal.
  • Verify Oracle’s Findings: When Oracle (or their auditor) delivers the report, scrutinize it:
    • Ensure they aren’t counting machines multiple times or including uninstalled versions. Oracle scripts sometimes flag Java in directories where it was previously installed or never used​.
    • Check if they assumed every installation is production. If some are strictly development or testing machines (allowed under OTN free terms), point that out with evidence.
    • If Oracle claims usage of commercial features (Flight Recorder, etc.) on older Java versions, confirm whether that occurred. If not, challenge that assertion.
    • Essentially, don’t accept the initial compliance gap claim at face value—there are often errors or overcounting.
  • Remediate During the Process if Possible: If the audit is ongoing and you identify clear compliance gaps, you may try to mitigate them in real time. For instance, if you find 50 servers running Oracle JDK 8, you might replace some with OpenJDK or uninstall Java on those not truly needed before final counts are submitted. This can reduce the scope of non-compliance. However, proceed carefully and transparently – you may need to inform the auditor of changes made. It’s best to get legal advice on how to document this. The principle is that you might negotiate to exclude certain findings if you’ve removed Oracle Java from those systems by the time of resolution​.
  • Leverage Included Java Rights: As mentioned, many Oracle enterprise products include Java SE usage rights in their license. For example, Oracle WebLogic, Oracle Database (for certain components), Oracle Forms, and others bundle a Java license for the components of Java they require​. If you’re audited, highlight that those Java installations are covered under existing licenses (with documentation from Oracle’s “included products” list). This can remove those from the compliance tally. Be sure, however, that those Java installations aren’t being used beyond the scope of the base product (e.g., using the WebLogic-bundled JDK to run a separate app would violate the restricted-use terms).
  • Negotiate the Outcome: You are not obligated to accept Oracle’s first demand. Oracle’s audit team typically wants to convert you to a subscriber, not punish you. This means there’s room to negotiate:
    • Emphasize your willingness to become compliant (Oracle responds better if you’re cooperative in principle).
    • If Oracle proposes a large back-dated fee, you can often negotiate it down or away by agreeing to a subscription from now on​.
    • You can also negotiate the subscription terms – perhaps a multi-year deal with a discount or a phased approach.
    • If you have data showing that only X servers use Java, you might try negotiating a smaller scope (though with the employee model, Oracle will officially resist partial licensing).
    • In some cases, bringing up the option of migrating from Oracle Java to OpenJDK can give you leverage—Oracle might prefer to keep you as a paying customer at a discount rather than lose you entirely. Use that bargaining chip wisely, and never bluff unless you’re prepared to follow through.
  • Get Expert Help: Consider engaging a software licensing consultant or legal advisor experienced in Oracle audits. Oracle’s contracts and tactics are complex, and having someone on your side who knows the playbook can significantly improve the outcome. They can help communicate, verify claims, and ensure you don’t agree to unfavorable terms.

In summary, preparation is your best defense. Know your Java usage, clean up what you can, and be ready to demonstrate compliance or swiftly remediate gaps.

If an audit comes, stay calm, be cooperative but careful, and negotiate a reasonable settlement (usually involving buying the appropriate subscription rather than paying huge fines).

After surviving a Java audit, many organizations decide to reduce their reliance on Oracle Java to avoid future headaches, leading to the next topics of negotiation and alternative options.

Oracle Java SE – Retroactive Licensing Demands

Java License Negotiation Strategies

Whether you’re proactively purchasing Java licenses or negotiating after an audit notice, it’s important to approach Oracle strategically.

Here are proven license negotiation strategies for Java:

  • Bundle Java with Other Oracle Deals: Oracle is often more flexible on Java pricing if it’s part of a larger sale​. Bring Java into that negotiation if you buy or renew Oracle Database, Middleware, or Cloud services. For example, during a Database Unlimited License Agreement (ULA) negotiation, you could seek to include Java usage rights in the ULA​. Some companies have negotiated a Java ULA – an agreement allowing unlimited Java use for a fixed period and price​. Oracle might not advertise it, but for a big deal, they might agree. The key is to leverage a bigger spend to get Java at a discount (or even no extra cost). Java alone might not get a steep discount, but Java + another multi-million-dollar contract could.
  • Understand and Leverage the Metrics: As of 2023, Oracle wants everyone to use the employee metrics. However, if you’re one of the customers still eligible to renew under the old Processor/NUP model, evaluate which is cheaper​. If your Java usage is small and contained (e.g., a handful of servers), it might be worth pushing Oracle to let you renew on a processor-based license rather than paying for all employees. Oracle’s official FAQ said existing customers may renew under existing terms, but they push the new model in practice. Still, you could argue the negotiation case, especially if you’re a small business or a specific subset of employees who use Java. In some instances, Oracle sales reps have discretion, but be prepared for the possibility that they may insist on the new model eventually. At least use the comparison to ask for a lower per-employee price if you must switch (e.g., “If we went by processors, it’d cost us $X, so we need a better per-head rate”).
  • Negotiate the Per-Employee Price: The published list price (e.g., $15 per employee/month for <1k employees) is often negotiable. Discounts are possible depending on your deal size and timing (Oracle’s quarter/year-end). It’s been reported that Oracle sometimes gives significant discounts or promotions to close deals​. Come into negotiations with a target price in mind, and perhaps internal approval to commit to a 3-year term, which Oracle often rewards with a better rate. If you have thousands of employees, push for the lower-tier pricing. Always ask – the worst Oracle can say is no, and they often will come back with some concession.
  • Use Alternatives as Leverage: If you plan to migrate to OpenJDK or another Java platform, let Oracle know you have options​. This isn’t to antagonize them but to signal that you won’t blindly accept an overpriced deal. If Oracle believes you might drop their Java for a free alternative, they have the motivation to price reasonably to keep your business. For example, “We’re evaluating moving 50% of our workloads to Amazon Corretto. We’d prefer to stay with Oracle if the price is right.” This stance often leads Oracle to come back with a more agreeable offer. (Be sure your bluff is credible – ideally, evaluate the alternatives so it’s a genuine option.)
  • Consider Term Length and True-Up: Oracle might offer price incentives for multi-year subscriptions or upfront payment. This can save money if you’re confident you’ll need Java for that period. Also, clarify how true-ups or expansions will be handled. With the employee model, if your headcount grows, will you owe more immediately or only at renewal? Try to lock in terms that favor you, such as the ability to true-up annually at the same discounted rate.
  • Audit Defense Positioning: If negotiation is happening in the context of an audit finding, use that context. Often, Oracle will waive back charges if you commit to a subscription. Make sure that as part of the settlement, Oracle agrees in writing that the purchase resolves past compliance issues. You want a “get out of jail” assurance moving forward. If the initial compliance claim was $1M and the subscription deal you negotiate is $200k/year for 3 years (~$600k), you can explicitly state that this purchase is in full settlement of the audit. Oracle typically will agree because its goal is future revenue, not a legal battle.
  • Small Businesses Tactics: If you’re a small firm (under 50 employees) and Oracle Java fees seem untenable, communicate that frankly. In some cases, Oracle might have special programs or allow a smaller scope license (though officially it’s all employees, they might quietly allow counting just developers for a very small shop). Another approach is to partner with a reseller or Oracle partner who might bundle Java for you with other services. Small deals are less interesting to Oracle, so it may not fight hard if you explain why you’ll drop Java entirely. Sometimes, simply stating, “We will migrate off rather than pay this,” yields a last-ditch discount.
  • Document Everything: When you reach a Java licensing agreement, ensure the terms (especially any special concessions) are documented in the contract or an addendum. Oracle agreements are complex, so have it in writing if, for example, they allow you to exclude certain contractors or if they provide extra rights. This avoids disputes later. For instance, if they say, “Okay, we’ll only count 500 out of your 600 employees due to part-timers,” ensure the contract reflects that exact understanding​.

In all negotiations, maintain a professional but firm stance. Oracle sales reps are well-trained negotiators; figuring out your bottom line and alternative plan in advance is key. Engage your procurement and maybe legal teams early.

Also, consider using Oracle license experts or third-party advisors – often, they know the discount bands and can advise what’s achievable.

The main takeaway: Java licensing costs can often be lowered through savvy negotiation and leveraging your overall relationship with Oracle.

Oracle Software with Included Java SE Licenses

Oracle Software with Included Java SE Licenses

Overview of Included Java SE Licenses in Oracle Products

  • Inclusion of Java SE Licenses: Certain Oracle products come bundled with a restricted-use Java SE license. Owning a license for these products might eliminate the need for a separate Java SE license purchase.
  • How It Works: Including a Java SE license with Oracle products allows users to utilize Java SE as part of their existing Oracle product environment without incurring extra licensing fees.

Detailed Breakdown of Products with Included Java SE Licenses

  • List of Inclusive Products: Oracle offers 100 products with a Java SE license. Below are examples of these products, though this list is not exhaustive:
    • Oracle SQL Developer
    • JACIC Electronic Bidding Systems
    • Oracle Forms
    • Oracle E-Business Suite
    • Various Oracle WebLogic Server Product client applications
    • JD Edwards

Further Examples of Oracle Products, Including Java SE Licenses

  • Extensive Product Ranges:
    • WebLogic Server Variants:
      • Standard Edition
      • Enterprise Edition
      • Suite
    • Oracle Internet Application Server:
      • Enterprise Edition
    • Oracle Coherence:
      • Standard Edition
      • Enterprise Edition for Oracle Applications
    • Oracle WebCenter:
      • Content
      • Universal Content Management
    • Oracle Business Intelligence:
      • Server Enterprise Edition
      • Suite Enterprise Edition Plus
      • Foundation Suite
    • Oracle Data Integrator:
      • Enterprise Edition
      • Integration Suite
      • Service Integrator
    • Oracle Identity and Access Management:
      • Suite Plus
      • Identity Manager
      • Access Manager
      • Directory Services Plus
    • Legacy BEA WebLogic Product Purchases

Key Considerations

  • Savings on Licensing Costs: Understanding which Oracle products include a Java SE license can significantly save licensing costs.
  • License Documentation Review: Organizations must review their license documentation to confirm the inclusion of Java SE in their specific Oracle licenses, ensuring compliance and cost-effectiveness.

Oracle Products That Include a Java SE License.

Oracle Java vs OpenJDK: Cost, Compliance, and Features

Oracle’s licensing changes have driven many organizations to consider OpenJDK and other Java distributions as alternatives. OpenJDK is the open-source reference implementation of Java, and many vendors provide builds from it.

How does using OpenJDK (or a third-party JDK) compare to Oracle’s Java (Oracle JDK)?

Let’s break it down:

  • Licensing & Cost: Oracle JDK is commercial – to use it in production long-term, you need a paid license (subscription). In contrast, OpenJDK is free and open source (GNU GPL v2 with Classpath Exception license) for anyone to use, modify, and distribute. There are no license fees for OpenJDK​. The difference is huge: Oracle’s JDK could cost $15 per user per month (or more)​, whereas OpenJDK from providers like Eclipse Temurin, Red Hat, or Amazon is zero cost. Even if you purchase support for OpenJDK from a vendor, those support contracts are often far cheaper than Oracle’s. For example, third-party Java support might be a few thousand dollars per year for an entire company, an order of magnitude less than Oracle’s subscription​. The bottom line is that OpenJDK can slash your Java runtime costs.
  • Compliance Risk: Running Oracle JDK without careful licensing poses a compliance risk, as we’ve seen, Oracle can audit and penalize for unlicensed use. In contrast, using OpenJDK (or any non-Oracle distribution like Amazon Corretto, Azul Zulu, etc.) eliminates Oracle license compliance issues​. OpenJDK is under a permissive open-source license; Oracle has no audit rights or claims. Many CIOs have switched to OpenJDK primarily to “get out from under” Oracle audits​. This doesn’t mean you shouldn’t manage OpenJDK properly (you still want security updates, etc.), but you won’t get a surprise audit letter from Oracle for running OpenJDK.
  • Source Code and Features: Since Java 11, the Oracle JDK and OpenJDK codebases have been identical for core features​. Oracle’s JDK is built from the OpenJDK project with just a few minor additions (like some packaging, installers, or graphics fonts). In earlier days, Oracle JDK had exclusive features (e.g., Flight Recorder, closed-source until Java 11). But those have since been open-sourced. Today, there is no significant feature in Oracle JDK that is not in OpenJDK​. Performance is the same because the bytecode compiler and JVM internals are the same. Many Java experts and even Oracle’s documentation confirm that Oracle JDK and OpenJDK releases of the same version are functionally equivalent​. In short, you typically won’t lose any features or performance by switching to an OpenJDK-based distribution for Java 11 and above.
  • Support & Updates: The main differentiator is how updates and support are delivered:
    • With an Oracle Java subscription, you get Oracle’s official support—access to their support portal, the ability to file support tickets, and guaranteed quarterly updates for all your licensed versions​. Oracle has extended updates for older LTS releases (Java 8, 11, etc.) for many years, but only for paying customers (after public updates end).
    • With OpenJDK, updates for each Java release are initially published by the OpenJDK community (to which Oracle contributes for 6 months after a release). After that, various other vendors take over support. For example, Red Hat maintains free updates for OpenJDK 8 and 11 long-term, Eclipse Adoptium (formerly AdoptOpenJDK) coordinates community builds, Amazon provides Corretto builds with their updates, and Azul offers extended support even beyond the community timelines​. This means even when Oracle stops free updates (e.g., no free Java 8 patches after 2019, no free Java 17 patches after 2024), you can still get builds with security fixes for those versions from other sources (Adoptium, Red Hat, etc.) at no cost or low cost.​
    • However, if you need enterprise-level support (e.g., an SLA for fixes), you might purchase a support contract from a vendor like Red Hat, Azul, or IBM for their OpenJDK distribution. Those are generally much cheaper than Oracle and sometimes offer longer support windows. For instance, Azul offers support for some Java versions up to 2030 and beyond if needed (for a fee)​.
    • In practice, many companies find community updates (which are typically timely) sufficient. Others pair OpenJDK with a small support subscription from a third party and still save a lot.
  • Update Cadence: Oracle releases Java updates quarterly (Critical Patch Updates). But those fixes have also been merged into the OpenJDK code. Most OpenJDK distributors release their builds around the same time or shortly after Oracle. The gap is usually minimal (days or a couple of weeks at most)​. So, using OpenJDK doesn’t mean you lag far behind in patching. One caveat: once Oracle moves a version to paid-only (out of free period), Oracle won’t publish those binaries publicly, but others will continue (for example, post-2024 Java 17 updates are available from Eclipse Temurin, even though Oracle’s free releases stopped)​.
  • Vendor Lock-in and Flexibility: OpenJDK is a broad ecosystem – you can choose builds from different sources interchangeably (they all pass the TCK [Technology Compatibility Kit] tests for Java). Oracle JDK is a single-vendor solution; if you rely on it and its support, you’re tied to Oracle’s terms. With OpenJDK, you can switch providers (say from one support vendor to another or distro to another) with minimal friction since all adhere to the same standards. This competitive ecosystem tends to keep costs down and innovation up.

In summary, Oracle JDK vs OpenJDK comes down to paying for Oracle’s brand and support versus leveraging the free open-source Java and possibly third-party support. For most organizations, OpenJDK offers equal technology at a dramatically better price point and without audit risk​.

The main reason to stay with Oracle is if you require its direct support and have a use case that justifies that expense (for some, the perceived assurance of Oracle’s backing may be worth it).

However, given OpenJDK’s maturity and the vibrant support options available, many companies (large and small) have migrated away from Oracle’s JDK to cut costs and reduce compliance worries.

Read The Hidden Costs of Oracle Java SE ‘Employee’ Licensing.

Types of Oracle Java Licensing Agreements

Types of Oracle Java Licensing Agreements

Oracle’s Java licensing is conveyed through several different agreements or terms. Understanding these is crucial to knowing what rules apply to your Java usage.

Here, we outline three key types of Java license agreements:

  • Java SE Subscription Agreement: This is the commercial license contract you enter when purchasing Oracle Java SE subscriptions. It grants you the right to use Oracle Java in production and receive updates/support as long as you pay the subscription fee. The agreement typically includes an Ordering Document (order form) referencing Oracle’s standard terms. If you don’t already have a master contract with Oracle, the Java SE subscription might include a license agreement document spelling out the terms (usage scope, audit rights, etc.). Under this agreement, you are allowed to use Oracle’s Java SE on the licensed metrics (which, post-2023, is the employee count) and get access to all necessary Java SE patches and support channels​. The Subscription Agreement obligates you to report changes (like increased employee counts) and usually has an audit clause (which might reference Oracle’s standard audit policies). In summary, think of this as the paid license contract – it turns on the “all good, you have a license” green light from Oracle’s perspective for your Java deployments.
  • Oracle Master Agreement (OMA) with Java Addendum: The Oracle Master Agreement is a framework contract some organizations have with Oracle​. Instead of signing separate terms for each Oracle product, an OMA provides general terms and specific ordering documents or schedules for individual products like Java. If your company has an OMA, your Java SE subscription may be governed by that OMA plus a Java ordering document or amendment. The OMA covers standard clauses (payment terms, liability, audit rights, general usage rights) in one master contract​. The Java addendum or order will specify the unique details: licensing metric (employee count), number of employees, price, support period, etc. The benefit of an OMA is that it streamlines contract management – multiple Oracle products fall under one umbrella​. For example, if you already have an OMA for Oracle Database licenses, adding Java might require a short order document referencing that OMA rather than an entirely new contract. For compliance, if you have Java via an OMA, Oracle’s audit clause in the OMA also applies to Java (meaning Oracle can audit your Java usage per the OMA’s terms). Functionally, the usage rights under an OMA Java addendum are the same as those for the standalone subscription – it’s more about the contracting vehicle. Large enterprises usually prefer using an OMA. One thing to note: If you negotiated any custom terms in your OMA (like specific definitions or notice periods), those would also cover the Java license unless overridden by the addendum.
  • Java No-Fee Terms and Conditions (NFTC): This is Oracle’s free-of-charge license for certain Java versions, introduced with Java 17. The NFTC is a public license agreement (you accept it by downloading Oracle JDK under those terms) that allows you to use Oracle’s JDK without paying a fee, but with significant conditions. Under NFTC:
    • You can use the current Java version in production for free, including commercial use​. For example, Java 17 was free from its release (2021) until one year after Java 21’s release.The free use is time-limited. Once the next Long-Term Support version is out for a year, your version’s NFTC period ends​. At that point, you either stop using that older version (or use it without updates, at your own risk), upgrade to the newer version, or start paying for a subscription to continue receiving updates.NFTC provides no support or patches beyond the free period. Oracle won’t give you security fixes for Java 17 once its no-fee period ends unless you become a paying customer​. You cannot redistribute Oracle’s Java binaries under NFTC​. It’s meant for internal use. If you develop software and want to bundle a JRE with it, NFTC doesn’t allow that; you’d need a separate agreement. It’s essentially “use at your own risk”. Oracle makes it clear there’s no warranty or guarantees. They offer NFTC to encourage adoption of the latest Java, but the moment you lag, you fall out of the no-fee usage and would require a paid license​.
    The NFTC is relevant for organizations that aggressively update Java, e.g., always moving to the newest LTS within a year of its release. If that agile approach fits your IT strategy, it can eliminate license costs. However, many enterprises can’t upgrade all applications frequently, so NFTC alone isn’t a complete solution for them.

Other terms you might encounter include the Oracle Binary Code License (BCL) – the old Sun-era license that made Java SE free (used for Java 8 and earlier, before 2019).

Also, as described earlier, the OTN Developer License (Oracle Technology Network License) allows free use for dev/test but not production​.

Those still govern older downloads (for example, Java 8 updates after 2019 are under the OTN license terms).

In summary, when using Oracle Java, you are either under a paid Subscription Agreement (possibly via an OMA) or using it under the free NFTC/OTN terms with limitations.

It’s crucial to know which agreement applies to you:

  • If you’ve purchased Java, ensure you have the paperwork (Subscription agreement or OMA order) and understand its terms (like the number of licenses, the definition of employees, etc.).
  • If you’re using Java for free, ensure your usage falls within NFTC or OTN allowances (e.g., only the latest version or non-production use). Otherwise, you might inadvertently be out of compliance.

Optimizing Java Licensing and Reducing Costs

Optimizing Java Licensing and Reducing Costs

Oracle Java can be expensive, but with careful planning and active management, organizations can optimize their Java licensing and even avoid costs altogether.

Here are strategies for Java license optimization:

1. Conduct a Thorough Java Inventory

Start by discovering all instances of Java across your environment:

  • Automated tools scan servers, PCs, and cloud instances for installed JDKs/JREs. Also, scan container images and CI/CD pipelines.
  • Identify the version and vendor of each Java installation (Oracle, OpenJDK, IBM, etc.).
  • This inventory should be kept up-to-date as environments change. Regular audits of your own (semi-annually, for example) will prevent surprises.

A complete inventory allows you to quantify your risk (how many Oracle JDKs are out there?) and spot opportunities to consolidate or remove installations.

As noted earlier, missing one installation can have big licensing implications, so aim for completeness.

2. Map Java Usage to Applications

For each Java instance found, determine what application or workload is using it​:

  • If an instance is tied to a specific vendor application, check if that app includes a Java license. (Oracle has an “Approved Product Use” list where 100+ products include Java SE rights​.) For example, Oracle GlassFish, WebLogic, Oracle E-Business Suite, certain IBM products, etc., come with Java. You might not need separate licensing if you only use Java as part of those.
  • Document these mappings. In an optimization exercise, you might find that out of 100 Oracle JDK installs, 30 are exclusively used for Oracle products that include Java – those 30 might be low priority to replace since they’re already licensed via the product.
  • For Java installations running in-house applications, note their importance and Java version. Are they on Java 8, 11, or 17? This will inform you whether you can move them to OpenJDK easily or upgrade them.

Understanding usage also helps identify if multiple apps could share a Java installation (to reduce the number of JDKs running) or if some are redundant.

3. Migrate to OpenJDK or Third-Party JDKs

One of the most effective ways to optimize cost is to switch from Oracle JDK to an OpenJDK-based distribution. This immediately cuts those instances’ Oracle licensing requirement (and audit risk).

Consider the following:

  • Evaluate popular OpenJDK distributions: Eclipse Temurin (Adoptium), Amazon Corretto, Azul Zulu, Red Hat Build of OpenJDK, IBM Semeru, Microsoft OpenJDK, etc. These Java SE implementations based on OpenJDK can be used as drop-in replacements for Oracle JDK. Many are tested to be TCK-compliant (ensuring full compatibility).
  • These alternatives are free to use. Some (like Amazon Corretto or Eclipse Temurin) are free with community support; others (like Azul Platform Core or Red Hat OpenJDK support) offer paid support if needed. For example, Azul, Red Hat, and IBM offer support contracts at a fraction of Oracle’s cost.
  • Plan to replace Oracle JDK installations with one of these. Many companies do this during Java version upgrades (e.g., when moving an app from Java 8 to Java 11, they switch to OpenJDK).
  • Remember the support lifecycle: ensure the distribution you choose will provide updates for the Java versions you use for as long as you need them. (Adoptium, for instance, aims to provide timely updates for LTS releases even after Oracle stops public updates.)

By migrating, you avoid future subscription costs.

A survey of top Oracle Java alternatives listed Azul, Temurin, Red Hat, and Amazon Corretto as popular choices—all of which can drastically reduce TCO (Total Cost of Ownership) compared to Oracle.

4. Implement Usage Tracking and Governance

Treat Java like any other strategic software asset:

  • Track versions to ensure you’re not falling behind on updates (which might force you to need Oracle support if you use an outdated build). If you standardize on, say, OpenJDK 11 and 17 for all internal apps, keep track of when those go end-of-free-support and plan upgrades.
  • Monitor new deployments: Establish an internal policy that no new project should deploy Oracle JDK without approval. For new development, default to OpenJDK. This governance prevents the proliferation of Oracle-dependent instances.
  • Training and Awareness: Inform development and operations teams about the Java licensing changes. Developers might often download Oracle JDK out of habit – educate them on how to use OpenJDK to avoid unintentional non-compliance.
  • Centralized Java management: Use configuration management (Ansible, SCCM, etc.) to control which Java distribution is installed on servers and workstations. For example, push OpenJDK company-wide and remove Oracle JDK where it’s unnecessary. This kind of central management can enforce compliance and consistency.

5. Optimize Java Versions and Consolidate

Maintaining many different Java versions can increase complexity. Try to consolidate on fewer versions:

  • If you have legacy apps on Java 6 or 7, consider upgrading them to a supported LTS (like 11 or 17). Then, you can use open-source builds and not worry about old paid extended support.
  • Each distinct Java version might require separate support. Sticking to LTS versions (e.g., 11, 17, 21) and phasing out non-LTS or very old versions can streamline support needs (Oracle’s or third-party).
  • Also, remove Java from devices that don’t need it. For example, If Java was installed on all employee PCs years ago but only a handful use a Java app, restrict Java installation to only those who need it. Fewer installations = lower license count (if on a legacy model) or an easier decision to migrate (if on an employee model, it strengthens your case to drop Oracle if only a few users need it).

6. Consider a Java ULA or Strategic License if Necessary

For organizations that truly require Oracle’s Java (for technical or business reasons), and have very large deployments, a Java ULA (Unlimited License Agreement) or a custom enterprise deal could be an optimization route:

  • A ULA is a time-bound agreement (often three years) in which you pay a one-time or annual fee and can use unlimited quantities of Java SE. At the end, you certify your usage. If your usage is high, this can be cost-effective and provide peace of mind (no tracking is needed during the term).
  • Oracle has provided Java ULAs to some customers​, especially when bundled with other ULAs or large contracts. These agreements lock in your cost for a period, regardless of growth.
  • However, be cautious: ULAs require careful exit management. You could lose coverage if you don’t accurately certify at the end. Oracle might attempt to push you to a standard subscription afterward, at potentially higher cost. So, only go this route with expert advice and if the math justifies it.

7. Continuously Review and Adjust

Java usage in your organization will evolve. New projects might introduce Java, and old ones might retire.

Make Java licensing review a periodic task:

  • Before any software procurement or renewal, check if Java is a factor. For instance, if you adopt new software that runs on Java, will it require a Java license, or do you need to account for one?
  • If Oracle issues new policies (sometimes updating terms, introducing new free periods, etc.), reassess your strategy. For example, Oracle’s introduction of an NFTC license for new LTS versions provided a window to upgrade and save on fees—savvy organizations took advantage of that for Java 17.
  • Keep an eye on the Java ecosystem. Alternatives are growing; for instance, technologies like GraalVM (which Oracle now also licenses) or Kotlin (which runs on JVM) might shift how you use the Java platform. Ensure those are accounted for (GraalVM Community Edition is free, but Oracle’s GraalVM Enterprise would fall under similar licensing considerations as Java SE).

Read Oracle Java Licensing FAQ.

Read our Case Study: Florida Logistics Company Saves $4 Million on Oracle Java Audit.

Conclusion: Navigating Oracle Java licensing

Oracle’s Java licensing changes have introduced complexity and potential costs, but with the right strategy, you can navigate them and even turn them to your advantage:

  • Review your Java usage now – Take an inventory of where Oracle JDK is used in your environment (and which versions). This will clarify your risk and guide your decisions.
  • Decide your approach – If Oracle’s Java is critical for you, prepare to budget for the new subscription model (and negotiate hard for the best terms). If not, plan a migration to open-source Java to avoid unnecessary costs.
  • Stay compliant—If you continue using Oracle Java, mark important dates (like when free periods end) and ensure you either renew or upgrade in time. Don’t let a license lapse unnoticed.
  • Leverage Oracle’s free use – Even if you eventually move away from Oracle, you can use their free Java 17/21 in the interim as a bridge. Just remember, the free period isn’t forever.
  • Seek expert help if needed – Oracle licensing can be tricky. If unsure, consult experts or services (like Java licensing advisory firms) specializing in this area. They can often save you significant money by identifying the most cost-effective path and handling negotiations or audits.

Next Steps: If you’re uncertain about your Java licensing position or need guidance:

  • Consider a professional Java licensing assessment. This can identify compliance gaps and highlight savings opportunities (such as migrating to OpenJDK or optimizing your Oracle subscription).
  • Contact us for a consultation or to learn more about our Oracle Java licensing advisory services. Our team of former Oracle auditors and licensing experts can help you formulate a plan, whether it’s negotiating a better deal with Oracle or seamlessly transitioning off Oracle’s JDK.
  • Above all, stay informed and proactive. By understanding Oracle’s rules and your options, you can continue to use Java confidently, minimize costs, and avoid compliance headaches.

Java Licensing FAQs

Why are there three different Oracle Java licensing agreements?

Oracle has established three distinct licensing agreements to accommodate various Java versions and use cases. The first agreement covers older versions and their patches, the second, known as Java OTN, is specifically for Oracle Java 11 and 17, and the third, the Java No-Fee License Agreement, applies starting with Java 17.

Do you have to have an Oracle Java 8 license?

Whether you need a license for Oracle Java 8 depends on a) if you have applied a security patch that is version 211 or later, b) if you have used any Java Commercial features, and c) if your use aligns with “general purpose computing” as defined in the licensing agreement.

Suppose we bought a third-party application that requires Oracle Java SE. Who is responsible for ensuring our compliance?

You need to check your agreement with the third-party application provider. If the agreement does not specifically mention Oracle Java SE licensing, you, as the end user, are likely responsible for ensuring compliance.

Oracle Java licensing and ISV / OEM licenses?

Few OEM partners, typically large software companies, have agreements with Oracle for Java licensing. Smaller ISVs are less likely to have such agreements.

Oracle Java and Commercial Features?

A license is often necessary to use Oracle Java SE’s commercial features, depending on the specifics of your Java licensing agreement and your IT security policies, particularly those regarding patching servers and desktops.

When you apply a security patch, will you be under the new licensing agreement?

Applying a security patch transitions you to the new Oracle Java OTN SE licensing agreement, which restricts commercial usage.

Does Oracle Java SE OTN require a license for non-production environments?

If you are developing your applications, you do not need to license your development environment. However, if you use third-party applications, the production and development environments must be licensed.

How do I purchase Oracle Java SE licenses?

Due to Oracle’s insufficient margins, few direct purchase options are available, as few resellers sell Java directly. You can also make your purchase directly from the Oracle webshop.

Does the Java Development Kit require a license?

The Java Development Kit may require a license depending on the specific version and usage. Review the applicable Java licensing terms for your version.

Oracle Java Audits?

Since January 2023, Oracle has included Java in its standard audits.

What recommendation would you give to a company that has not yet reviewed its licensing?

It’s essential to start reviewing your Java licensing situation immediately. This review is foundational for compliance, strategic planning, and preparation for potential audits.

What happens at the end of a Java ULA?

At the end of a Java ULA, you must uninstall Java from all devices and servers, as you will not own any licenses, unlike technology ULAs, where you can retain the deployed software as licenses.,

What kind of discounts can I expect for Java?

Discount levels vary significantly; however, clients often achieve substantial discounts through expert Java licensing advisory services.

What is a Java employee metric?

Introduced in January 2023, the Java employee metric requires you to license users based on the total employee count, regardless of whether they are Java users.

What if we have shared devices with multiple users? How to license?

Each individual with access to a shared Java device needs to be licensed.

What is the most common mistake companies make with Java?

A frequent oversight is neglecting the licensing requirements for older Java deployments and misunderstanding Oracle’s licensing policies around environments like VMware.

Which commercial feature is most commonly used?

Common usage includes the MSI from the Oracle website for mass updates or distributions, which is generally not permitted.

Which challenges do organizations face with Java?

Organizations often struggle with running Java in virtual environments and understanding the reasons for deployment on servers, especially if they are not major Oracle customers.

If we own WebLogic licenses, do we have Java licenses?

Some Oracle products, like WebLogic, contain a restricted-use Java SE license. Review the product list that includes Java licenses to ensure you do not over-purchase.

Do we need a license if we run Java 8 without applying a security update after April 2020?

Yes, most likely. It is advisable to review the Binary Code License Agreement (BCL) with legal counsel to confirm.

Do third-party application vendors have restricted Java licenses?

Only a few major software vendors, such as IBM, SAP, and Symantec, have restricted Java licenses.

Is Oracle Java 17 free for commercial use?

Yes, Oracle Java 17 is free for commercial use, provided you do not distribute Java as part of solutions sold to end customers.,

When Oracle writes that Java is free, what does it mean?

When Oracle mentions that Java is free, it refers to OpenJDK and Java 17, which are available without cost under certain conditions. They are primarily for general use and development without security updates after their public updates end. Read more about which Java versions are free.

If we have Java 6, do we need a license?

Yes, you most likely need a license for Java 6. To ensure compliance, it is important to review the specific licensing agreement applicable to that version, typically the Binary Code License (BCL).

We have Java 7. Do we need a license?

Yes, you will likely need a license for Java 7. Reviewing the Oracle Binary Code License agreement pertinent to this version is essential for determining the correct licensing requirements.

We have Java 8 with a security patch 91. Do we need a license?

Suppose you have Java 8 with a security patch earlier than 211. In that case, you need to review the Binary Code License Agreement to understand the licensing requirements, especially how they pertain to “general purpose computing,” which defines permissible free use.

We have upgraded our Java 8 to a security patch 211 or later. Do we need a license?

Yes, upgrading Java 8 to security patch 211 or later means you are subject to the Java OTN agreement and will need a license if you are a commercial organization.

How do we license Java on Hyper-V?

Licensing Java on Hyper-V requires applying Oracle’s virtualization policy. You must count all physical hosts in your cluster and apply the Oracle Core Factor Table to determine the required licenses.

Do you recommend we contact Oracle for help with Java?

It is advisable to consult with an independent licensing expert before contacting Oracle. An expert can help you understand your licensing needs and optimize your environment, thus better preparing you for negotiations or discussions with Oracle.

How to license Java in AWS?

In AWS environments, licensing Java SE typically involves multiplying the number of vCPUs by Oracle’s licensing factors, where two vCPUs usually equate to one Oracle Java license.

And how does it work to license Java on Azure?

Licensing Java on Azure follows a similar model to AWS. You multiply the number of vCPUs by Oracle’s standard licensing conversion, generally counting two vCPUs as one license.

How will the 2023 license changes impact me if I have a 3-year agreement for a Java subscription?

The 2023 licensing changes will not affect your current Java subscription agreement until it expires. After expiration, you will likely need to transition to the new employee licensing model.

With employee licenses, do we need to count processor licenses for licensing Java?

With the new employee licensing model, you do not need to count processors. Licensing is based solely on the number of employees defined by the new metric.

Can I run Java on VMware with an employee subscription?

Yes, you can run Java on VMware with an employee subscription without counting the number of processors, provided you stay within the cap of 50,000 processors specified in the licensing terms.

What is the new pricing model for Java SE subscriptions?

Oracle has transitioned from Named User Plus and Processor licensing to an employee-based model called Employee for Java SE Universal Subscription. Pricing varies based on employee count, providing different tiers for different employee numbers.

What happens to existing Java SE customers?

After a soft audit by Oracle, existing Java SE customers can extend their renewals under the current terms. However, Oracle may request a review of the deployment data before agreeing to renew.

Under the new pricing model, what is the processor limit for installing and running the Java SE Universal Subscription Program(s)?

Under the new Java SE Universal Subscription model, the installation limit is 50,000 processors. If usage exceeds this number, an additional license is required, excluding those on desktop and laptop computers.

Our Java audit defense includes an outcome-based guarantee — you won’t pay any retroactive licensing fees.

Do you want to know more about our Java Advisory Services?

Please enable JavaScript in your browser to complete this form.
Name

Author

  • Fredrik Filipsson

    Fredrik Filipsson brings two decades of Oracle license management experience, including a nine-year tenure at Oracle and 11 years in Oracle license consulting. His expertise extends across leading IT corporations like IBM, enriching his profile with a broad spectrum of software and cloud projects. Filipsson's proficiency encompasses IBM, SAP, Microsoft, and Salesforce platforms, alongside significant involvement in Microsoft Copilot and AI initiatives, improving organizational efficiency.

    View all posts