Java licensing

Oracle Java Licensing for Legacy Versions (Java 6, 7, 8, 11) – What Requires a License?

Oracle Java Licensing for Legacy Versions (Java 6, 7, 8, 11)

Oracle Java Licensing for Legacy Versions (Java 6, 7, 8, 11)

Executive Summary

This article guides CIOs, IT Asset Managers, and procurement leaders on Oracle Java licensing for legacy Java versions (6, 7, 8, 11). It explains which older versions of Java can be used at no cost and when a paid Oracle license or subscription is required.

Enterprise leaders will gain clarity on how Oracle’s historical licensing changes affect Java SE usage in their organization and what steps to take to remain compliant for each Java version.

Oracle’s Legacy Java License Agreements

Oracle’s licensing for Java has evolved significantly over time. For Java 6 and 7, Oracle inherited Sun Microsystems’ Binary Code License (BCL), which allowed free use of Java for development and production with no support guarantees.

Java 8 initially followed this free model under BCL, but Oracle introduced a paid Java SE Subscription in 2018 and made major changes starting in 2019.

In April 2019, Oracle implemented the Oracle Technology Network (OTN) License for Java SE, which restricted free use to specific purposes: personal use or development/testing.

Any commercial production use of Oracle JDK 8 (and later versions) beyond that point requires a paid license.

Essentially, Oracle ended free public updates for Java 8 as of January 2019. Organizations needed to purchase a Java SE subscription to receive updates and use Java 8 legally in production.

Oracle did not offer long-term free updates for Java 11, released in 2018; running Java 11 in production after its initial release period also required a subscription (under the same OTN terms as Java 8).

These changes marked the end of the “free Java” era for businesses, unless they switched to open-source builds or stayed on outdated versions without updates.

Java Licensing Overview by Version:

To clarify the licensing requirements of different Java versions, the table below outlines Oracle’s terms for legacy versions:

Java VersionOracle Licensing Policy (Commercial Use)
Java 6 & 7Free under original BCL for all uses (no cost), but no Oracle support or updates past end-of-life. Commercial features (e.g., Java Mission Control in Java 7) required a license.
Java 8Free for commercial use only up to public update 202 (Jan 2019). Applying updates/patches 211 or later means accepting the OTN license – requiring a paid subscription for production use. No free updates beyond 2019.
Java 11No long-term free support. Oracle provided limited updates initially; after that, any production use requires a Java SE subscription (same OTN terms as Java 8).
Java 17Covered by Oracle’s No-Fee Terms and Conditions (NFTC) license, making it free for commercial use temporarily (until one year after the next LTS release). For example, Java 17 was free until Java 21 had been out for a year (free period ends in Sept 2024), after which a subscription is required for updates.
Java 21The current LTS under NFTC (free for now in production). Its free period will last one year after the release of the next LTS (Java 23 or 25, etc.). After that, updates require a subscription.

This table shows that Java 6 and 7 can still be used without a subscription (Oracle isn’t charging for those old versions), but they are outdated and unsupported.

Java 8 and 11 require careful attention: using them in production today means you likely need an Oracle Java SE subscription unless you’ve stayed on very old build levels.

Java 17 and 21 introduce Oracle’s NFTC model, a kind of grace period of free use that eventually expires.

BCL, OTN, and NFTC – What They Mean

Understanding the license acronyms is key to compliance. Under Sun’s BCL (Binary Code License), Java 6/7/8 was free to use in any environment, but it did not include the right to updates indefinitely.

Oracle’s OTN License (from 2019) changed the game for Java 8 and above: it allows free use only for development, testing, prototyping, and personal use. Any production use under OTN requires a paid subscription.

Suppose your team downloaded Oracle’s JDK 8 or JDK 11 from Oracle’s website after April 16, 2019, and deployed it in production. In that case, you must have an active Java SE subscription (even if the software still runs).

Oracle’s NFTC (No-Fee Terms and Conditions), introduced with Java 17, is a newer license type that permits free use of the latest Java LTS version in production, but only during a specified time window.

NFTC is Oracle’s way to let companies use the current LTS (e.g., Java 17, now Java 21) for free initially, with the understanding that once the next LTS is out for a year, the previous LTS falls out of free status (no free updates).

In practical terms, NFTC lets you avoid paying Oracle for a while, but eventually forces you to upgrade to the newest Java or start paying for a subscription to keep getting patches on the older LTS.

Java 8: The End of Free Updates

Java 8 is a special case because of its widespread adoption. Oracle’s cutoff of free Java 8 updates in January 2019 caught many enterprises off guard.

Suppose your organization is running Java 8 in production and has applied any security update beyond update 202 (which came out in January 2019).

In that case, Oracle considers you under the OTN license and needs a Java SE subscription for those installations. Many companies running Java 8 unknowingly became non-compliant through routine patching after 2019.

For example, a bank that updated its Java 8 runtime to version 221 in mid-2019 for security fixes would technically require a paid Java license. Oracle’s Java SE subscription for Java 8 (before 2023’s model change) was sold under User Plus and Processor.

To illustrate the cost, Oracle’s 2018 price list for Java SE subscriptions was roughly $2.50 per month per user (for desktops) or $25 per month per processor for servers.

These costs were manageable for many businesses, so some opted to pay Oracle for Java 8 support post-2019.

However, others avoided these fees by migrating to OpenJDK or other free Java distributions for Java 8.

It’s worth noting that OpenJDK (the open-source implementation of Java) provides the same base code without Oracle’s proprietary bits. Organizations could switch to OpenJDK 8 to keep getting free updates (via the open-source community or vendors like AdoptOpenJDK/Adoptium) rather than pay Oracle.

The downside is that you don’t get Oracle’s official support or the long-term updates beyond what the community provides.

In summary, if you are still on Java 8 in 2025 and haven’t paid Oracle, you either must be running an old pre-2019 build (risky and outdated) or have migrated to a non-Oracle JDK for those workloads.

Java 11: Subscription Only for Long-Term Use

Java 11, another long-term support (LTS) release, came out in 2018 after Oracle announced the subscription model. Oracle offered Java 11 under similar terms to Java 8’s OTN license.

There were a few free public updates for Java 11 (Oracle provided updates for about six months after release), but by early 2019, Java 11 updates also became paid-only. So any company running Java 11 in production beyond that initial period would require a subscription.

The difference with Java 11 was that many organizations were aware of Oracle’s policy by this time and either bought subscriptions or immediately decided to use OpenJDK 11 instead (since OpenJDK 11 is available under the GPL open-source license).

Java 11 has no NFTC free-use period like Java 17; NFTC was introduced later. Therefore, treat Java 11 similarly to Java 8 for licensing: production use in 2025 should be licensed via Oracle subscription or on a non-Oracle platform.

One nuance: Oracle did open-source some formerly commercial features by Java 11 – e.g., Java Flight Recorder and Mission Control (which in Java 8 required a commercial license) were made free in OpenJDK 11.

So, using Oracle JDK 11 vs OpenJDK 11 might have fewer feature differences than earlier versions. Still, the licensing obligation with Oracle JDK 11 remains unless you only use it for development/testing.

Java 17 and 21: Free Under NFTC (For Now)

Oracle Java 17 (LTS) was a turning point when the NFTC license was introduced. From its release in Sept 2021 until one year after Java 21’s release (in Sept 2023), Java 17 could be run in production at no cost. Many organizations upgraded from Java 8 or 11 to Java 17 to take advantage of this free period.

However, that free period ends in late 2024. After that, continuing to use Java 17 in production means no more free updates – you would have to either subscribe or upgrade. Java 21, released in 2023, is now the free LTS under NFTC.

Companies can deploy Java 21 without licensing costs for a few years. Still, when Java 25 (hypothetical next LTS) comes out and a year passes, Java 21 will similarly require a subscription for updates.

The NFTC approach effectively encourages organizations to stay on the latest Java version to avoid fees, which might not always be feasible for enterprise applications that can’t quickly jump to new versions.

The key point is that NFTC provides temporary free use, not permanent.

CIOs should plan Java version upgrades strategically, delaying too long on an LTS after its free period ends would put you back into a paid license situation or leave you running without security patches.

Compliance Tips for Older Java Versions

Handling legacy Java versions in an enterprise environment involves understanding these rules and planning accordingly.

First, inventory all Java installations in your organization and note their versions.

Identify any Java 8 or Java 11 deployments—if not licensed, they can pose potential compliance risks. Determine if those installations have been updated beyond the free-update cutoff (for Java 8, post-Jan 2019; for Java 11, post-Mar 2019).

If yes, and you haven’t purchased Oracle Java subscriptions, you likely have a compliance gap. If possible, consider upgrading those systems to Java 17 or 21 (to leverage NFTC free use) or migrating them to OpenJDK equivalents.

Suppose neither upgrade nor migration is feasible (perhaps due to application compatibility). In that case, you must budget for an Oracle Java SE subscription to remain compliant, or explore third-party Java support vendors as an alternative.

Oracle no longer provides updates or support for Java 6/7. Using them is risky from a security standpoint, but Oracle isn’t charging for them. However, note that the new licensing rules kick in if you upgrade Java 6 or 7 applications to Java 8+.

If in doubt, always review the Oracle Java SE Licensing FAQ and OTN agreement terms; they explicitly outline these conditions.

The safest path to compliance for legacy versions is to stay on Oracle’s supported path with a subscription or move off Oracle’s binaries entirely for older Java.

Many enterprises have chosen the latter for Java 8 and 11 by adopting open-source builds, thereby avoiding Oracle fees (but taking on the responsibility for updates via alternative means).

Recommendations for CIOs and CTOs

  • Audit Your Java Usage: Conduct a thorough internal audit of all Java installations (including versions and patch levels). Identify any Oracle JDK 8 or 11 instances that might be non-compliant.
  • Upgrade Strategically: Where possible, plan to upgrade legacy Java applications to the latest LTS (e.g., Java 17 or 21) to benefit from the NFTC free period, buying time before any payment is required.
  • Consider Open-Source Java: Evaluate open-source Java distributions (e.g., OpenJDK builds) for legacy systems. Transitioning to these can eliminate Oracle license requirements for older Java versions, ensuring compatibility and support for your applications.
  • Secure Unsupported Versions: If you must run Java 6/7 or an unpatched Java 8/11 due to legacy systems, isolate those environments. Recognize the security risk and consider third-party support or accelerated decommission plans, since Oracle won’t provide fixes without a subscription (and not at all for Java 6/7).
  • Review Contracts and Renewals: If you previously purchased Oracle Java SE subscriptions for Java 8/11, track their renewal dates. Oracle has been known to push customers to the new enterprise-wide (employee-based) subscription upon renewal. Be prepared with a strategy (either negotiate an extension of old terms, budget for the new model, or eliminate the need by migrating off Oracle Java).
  • Educate Development Teams: Ensure your developers and IT staff understand that downloading Oracle JDK from Oracle’s website for internal use can carry licensing implications. To avoid accidental non-compliance, they should use OpenJDK or other non-Oracle sources for development workstations.
  • Monitor Oracle Announcements: Stay updated on Oracle’s Java licensing policy changes. Oracle may introduce new license models or adjust terms (as with NFTC). Early awareness will help you adapt before a change impacts your compliance status.
  • Utilize Vendor Communications: Oracle sometimes notifies customers (or even sends “soft audit” emails) about Java usage. Do not ignore these. They are indicators that Oracle has data (like download records) suggesting you use Java. Respond with a clear compliance plan – possibly after consulting a licensing expert.
  • Plan for NFTC Expirations: If you’re using Java 17 under NFTC, mark October 2024 on your calendar (the end of its free period). Similarly, track Java 21’s timeline. Decide whether to upgrade to the next free version or purchase a subscription for continued support on the older LTS.
  • Engage Experts if Needed: Oracle’s legacy licensing nuances can be confusing. Consult with Oracle licensing specialists or SAM consultants to review your Java usage and ensure you’re not at risk. The cost of a consultation is far lower than a surprise audit finding.

FAQ

Q1: We have Java 7 in production. Do we need an Oracle license for it?
A1: Generally, Oracle does not require a license fee for Java 7 (or Java 6) usage. Those versions were under the old free BCL license. However, Java 7 is long out of support – Oracle isn’t charging for it, but also not providing updates. Ensure you know the security risks of running such an old version and that you’re not using any Oracle commercial add-ons that might have required separate licenses.

Q2: Do we need a license for Java 8 if we never updated it past January 2019?
A2: If you never applied any Oracle Java 8 update beyond the public updates available up to January 2019 (update 202) and haven’t used any Java commercial features, you technically stayed under the old terms and wouldn’t need a subscription. However, running an unpatched Java 8 after 2019 is risky. Most organizations applied later updates for security, which would put them under the OTN license and thus require a subscription. It’s important to verify the patch level of each Java 8 installation. If any instance is updated to 211 or higher, that instance needs to be licensed.

Q3: Our applications run on Java 11 – is Java 11 free to use?
A3: Not for long-term or production use. Oracle did not provide free long-term support for Java 11. After the initial release phase, Java 11 required a paid subscription for commercial use (similar to Java 8’s situation). You are likely out of compliance if you’re using Oracle’s Java 11 in production today without a subscription. Many companies avoided this by deploying OpenJDK 11, which is functionally equivalent to Oracle JDK 11 minus Oracle support. Ensure your team uses open-source builds or has an Oracle subscription if running Java 11 in production.

Q4: What are “Java commercial features,and do they affect licensing for older versions?
A4: Oracle designated certain advanced features as “commercial features” (starting with Java 7 and 8) – for example, Java Flight Recorder and Java Mission Control. Under the Java 8 BCL, using those features in production required a license (even if Java 8 was free to run). By Java 11, Oracle open-sourced some of these tools, so the concept of commercial features disappeared for later versions. But if you used Java 8 and enabled commercial features without a subscription, that’s a compliance issue. This is a minor point for most organizations (many didn’t use those features), but it’s worth noting: free use of Java 8 was only free if you stuck to the standard runtime features.

Q5: Java SE is installed as part of another Oracle product (like Oracle Database or WebLogic). Do we need a separate Java license?
A5: Oracle permits certain products, including Java, for internal use. For instance, Oracle Database or WebLogic Server might come bundled with a Java runtime for running that product’s components. Typically, you do not need a separate Java SE subscription for the Java embedded in and exclusively used by another Oracle product you’ve licensed. The other product’s license covers the use of Java in that context. However, if you use that Java installation for any other general application outside the scope of the product, then it would fall under normal Java licensing rules. Always check the specific licensing documentation of the Oracle product to see if Java usage is included.

Q6: Is Oracle Java 17 free for commercial use?
A6: Yes, but with a big caveat. Java 17 is free for commercial use under the NFTC license until its free period expires (one year after the release of the next LTS). Currently, Java 17’s free use period ends in September 2024. After that, you must pay for a subscription to keep using Java 17 and get updates/support. Java 17 can be run without any payment during the free period, which has benefited many businesses. Just have a plan for what you’ll do when the clock runs out – either upgrade to Java 21 (which resets the free clock for that environment) or budget for subscriptions.

Q7: Our company uses a mix of Java versions (8 and 17). Will an Oracle Java SE subscription cover all of them?
A7: If you purchase Oracle’s Java SE Universal Subscription (the current model), it is an enterprise-wide subscription that covers all Java versions (from 8 up to the latest) for your organization. Oracle changed to this per-employee subscription in 2023. So one subscription covers any Oracle Java usage across versions, as long as you license the required number of employees. If you still have the older style Java SE subscriptions (per processor or Named User Plus, from pre-2023 contracts), those would typically specify version coverage (usually any version, since it was just Java SE in general). In short, a paid Java subscription isn’t version-specific – it’s essentially a right to use Oracle Java SE (any version needed) in your environment, with support.

Q8: Can we use OpenJDK 8 or 11 without Oracle license concerns?
A8: Yes. OpenJDK is the open-source version of the Java platform. Oracle publishes OpenJDK builds, and other providers (Eclipse Adoptium, Amazon Corretto, etc.) provide free builds and updates. Using OpenJDK does not require any Oracle license, because it’s under an open-source license (GPL). Many organizations migrated their Java 8 and 11 workloads to OpenJDK to avoid Oracle fees. The key is to ensure you uninstall Oracle’s JDK/JRE and replace it with an OpenJDK-based JDK/JRE, so that you are no longer running Oracle’s proprietary binaries. As long as you’re running a pure open-source Java, Oracle’s licensing doesn’t apply. Just be mindful that with OpenJDK, you must manage updates (either yourself or via a third-party support vendor) since you won’t get patches from Oracle.

Q9: What happens if we continue to use Java 8 or 11 without a subscription or switch to OpenJDK?
A9: If Oracle becomes aware (for example, via an audit or their download records) that your company is running Oracle Java 8/11 in production without a license, you could face compliance action. This typically means Oracle will ask you to purchase subscriptions for the period you used Java without one. They might calculate back-dated charges, possibly including support fees (Oracle often adds ~22% per year as a support maintenance component). In worst-case scenarios, if usage has been long and widespread, this can result in a significant, unexpected cost. It’s better to proactively address the situation by obtaining the necessary subscriptions or migrating off Oracle JDK before Oracle knocks on your door.

Q10: Oracle says Java is “free” now (with NFTC). Why are others saying we need licenses?
A10: Oracle’s messaging around “free Java” refers to the NFTC license for the latest versions. Java 17 and Java 21 can indeed be run in production for free during their active NFTC period. However, this doesn’t apply backward to older versions and doesn’t last forever. So while Oracle marketing emphasizes that “Java is free” under NFTC, the fine print is that Java is only free under specific terms and timeframes. Many organizations still run Java 8 or 11 due to application constraints, which are not free for commercial use if updated. Also, even with NFTC, you face a license requirement once the free term expires. In summary, Oracle isn’t suddenly giving an unlimited free pass for all Java; they are giving a conditional free use for the latest LTS to encourage upgrades. It’s crucial to understand those conditions to avoid license surprises.

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 has 20 years of experience in Oracle license management, including nine years working at Oracle and 11 years as a consultant, assisting major global clients with complex Oracle licensing issues. Before his work in Oracle licensing, he gained valuable expertise in IBM, SAP, and Salesforce licensing through his time at IBM. In addition, Fredrik has played a leading role in AI initiatives and is a successful entrepreneur, co-founding Redress Compliance and several other companies.

    View all posts
Redress Compliance