What the NFTC license is
The No Fee Terms and Conditions is the license Oracle introduced in September 2021 to govern free use of its JDK, beginning with Java 17. Under the NFTC, Oracle permits you to use designated JDK builds at no charge, including in production and for commercial purposes, which was a deliberate softening after years of restrictive terms. On its face it looks like Oracle giving Java back to developers, and for a defined window that is exactly what it does. This article sits beneath the Oracle Java licensing pillar.
The NFTC is genuinely permissive while it applies. You can download Oracle JDK 17, deploy it across production systems, and pay nothing, with no employee metric and no subscription. The catch is not in what the NFTC allows but in how long it allows it, and that time limit is where unprepared organisations walk into cost. It is a distinct license from both the open source OpenJDK terms and the paid Universal Subscription.
Where the free use ends
The NFTC grants free use of a given JDK version only during the period Oracle provides free updates for it, plus a short grace window. For a given feature release, Oracle publishes free quarterly security updates for a defined number of years; once that window closes, the next release becomes the free one, and continued use of newly patched builds of the old version falls outside the NFTC. To keep receiving security patches for the now expired version, you need the paid subscription.
The NFTC does not charge you to start. It charges you to stay patched after the free window closes, which for a production estate is not optional.
This is the structural trap. An organisation standardises on a free NFTC release, builds it into production, and then faces a choice when the free update window ends: upgrade the entire estate to the next free version on Oracle's schedule, run unpatched and accept the security risk, or buy the subscription. Each option carries cost or risk, and Oracle's renewal conversations are timed to exactly this moment. The history of how the licence terms have shifted is in the legacy Java SE subscription guide.
NFTC against the other Java licences
Buyers routinely confuse three different things that all involve free or paid Oracle Java, and the confusion is expensive. The NFTC is a free use license for specific Oracle JDK builds with a time limit. The Universal Subscription is a paid, workforce based right to use any Oracle JDK with ongoing patches. OpenJDK distributions are open source builds from other vendors that are free without Oracle's time limit at all.
| Option | Cost | Patch limitation |
|---|---|---|
| Oracle JDK under NFTC | Free for a window | Free updates end on a schedule |
| Oracle JDK under subscription | Workforce based fee | Patched while subscribed |
| OpenJDK build (Corretto, Zulu, Temurin) | Free | Patched freely by vendor |
The comparison makes the strategic point: if your goal is durable free Java, an OpenJDK distribution avoids the NFTC time limit altogether, which is why so many organisations treat the NFTC as a transitional step rather than a destination.
How to use the NFTC safely
The NFTC can be used without cost if you treat its expiry as a managed event rather than a surprise. That means tracking, for every Oracle JDK version in your estate, the date its free update window closes, and planning either an upgrade to the next free release or a switch to OpenJDK before that date. Organisations get caught not because the terms are hidden but because no one owns the calendar.
The cleaner discipline, for most enterprises, is to avoid building production dependence on Oracle JDK under the NFTC at all, and to standardise instead on a free OpenJDK build that carries no expiry. That removes the calendar risk and the renewal conversation in one move. The migration path is set out in the migrating off Oracle Java guide, and our Java advisory service helps inventory which systems are exposed to an NFTC expiry.
Is Oracle Java under the NFTC really free?
Yes, but only temporarily and only for designated versions. The NFTC genuinely permits free production use of specific Oracle JDK builds, with no fee and no employee metric, for as long as Oracle provides free updates for that version. The freedom is real while it lasts.
It stops being free the moment you need a security patch for a version after its free update window has closed, because patched builds beyond that point require the paid Java SE Universal Subscription. For a production estate that cannot run unpatched, the NFTC is therefore best understood as free for now rather than free forever, which is why durable cost avoidance usually means moving to OpenJDK.
The licensing timeline that created the confusion
The NFTC cannot be understood in isolation, because its meaning comes from the sequence of licensing changes around it. For years Oracle JDK was effectively free under the old Binary Code License, and a generation of developers installed it without a second thought. In April 2019 Oracle changed the terms so that commercial use of its JDK required a paid subscription, a shift that caught many organisations unaware and seeded a large population of accidental non compliance.
Then in September 2021, with Java 17, Oracle introduced the No Fee Terms and Conditions, permitting free production use again, but only for designated versions and only while they received free updates. The intent was to win back developers alienated by the 2019 change, while preserving a route to revenue once a version aged out. The effect, though, was a landscape in which the same vendor offered Java for free, for a fee, and for free again under different terms across a few years, which is the root of the confusion buyers feel.
Reading any Java deployment correctly therefore means knowing which license governs each binary: the old free terms, the 2019 paid subscription, the NFTC, or an entirely separate OpenJDK distribution outside Oracle's terms altogether. The history of these shifts and how they map to the subscription is detailed in the legacy Java SE subscription guide.
Building an NFTC expiry calendar
If an organisation chooses to use Oracle JDK under the NFTC, the single control that keeps it free is a disciplined expiry calendar, and building one is straightforward in principle even if it is neglected in practice. For every Oracle JDK version in the estate, the organisation records the date Oracle's free updates for that version end, and it sets an internal deadline some months earlier by which it must either move to the next free release or switch to an alternative. The free update horizon for a given feature release is published by Oracle, so the dates are knowable in advance.
The calendar only works if someone owns it. The recurring failure is not that the dates are hidden but that no individual or team is accountable for acting on them, so the free window closes quietly and the organisation discovers the problem only when a security patch it needs turns out to require a subscription. Assigning clear ownership, and tying the expiry dates into existing patch and lifecycle governance, turns a latent liability into a managed schedule.
Even with a perfect calendar, the NFTC commits the organisation to a treadmill of version upgrades on Oracle's timetable, which carries its own testing and disruption cost. For many, the calculation is that escaping the treadmill entirely, by standardising on a free OpenJDK build with no expiry, is less work over time than perpetually chasing Oracle's free update windows. The migration route is set out in the migrating off Oracle Java guide.
Common ways organisations fall into the NFTC trap
The NFTC trap is rarely sprung by a single decision; it is the accumulation of small, reasonable choices that no one connected. A developer downloads Oracle JDK 17 because it is free and familiar, builds it into an application, and the application goes to production. The free status was genuine at that moment, so nothing looked wrong. The trap closes later, when the free update window for that version ends and the production system still needs patches, by which time the dependency is embedded across the estate.
A second common path is the bundled runtime. A third party product or internal template ships with an Oracle JDK under the NFTC, and as it propagates, the organisation acquires an Oracle Java footprint it never consciously chose. When the version ages out, that footprint becomes a subscription liability, often discovered only during an Oracle review that points to download records or installed binaries.
The protection against both paths is the same: govern Java distribution centrally, prefer a free OpenJDK build as the default, and treat any deliberate use of Oracle JDK under the NFTC as a tracked exception with an owner and an expiry date. Organisations that leave the choice to individual teams accumulate exposure invisibly, while those that standardise the supply chain avoid the trap by construction. This governance posture is part of how our Java advisory service closes NFTC risk before it becomes a bill.
What the NFTC does not cover
Reading the NFTC correctly means being as clear about its limits as about its grants, because the gaps are where cost and risk live. The NFTC covers designated Oracle JDK versions during their free update window; it does not cover older releases that predate the NFTC and remain under the paid subscription terms introduced in 2019, and it does not retroactively make historical commercial use free. An organisation that ran Oracle JDK commercially between 2019 and adopting an NFTC release may still carry a liability for that earlier period.
The NFTC also does not cover continued patching of a version once its free update window closes, which is the central trap, nor does it transform Oracle JDK into an open source distribution. It remains Oracle's proprietary build under Oracle's terms, distinct from an OpenJDK distribution that is free without an expiry. Conflating the two leads organisations to assume a permanence the NFTC never granted.
Finally, the NFTC does not insulate an organisation from an Oracle review, because Oracle may still examine whether use stayed within the free terms and whether any binaries fall under the paid subscription instead. Demonstrating compliance therefore still requires an inventory that distinguishes NFTC eligible versions from subscription bearing ones. Understanding these boundaries is what separates safe, deliberate NFTC use from the accidental exposure described in the legacy subscription guide.
The buyer side view
The practical takeaway is that the NFTC is a real concession with a built in expiry, and the organisations that get hurt by it are the ones that read the headline, not the schedule. Free production use is genuine, but it is anchored to a version whose free updates end, and a production estate that needs patches will face the subscription at that point unless it has moved on.
Use the NFTC deliberately and with a calendar, or skip it in favour of an OpenJDK build that has no expiry. Track every Oracle JDK version against its free update end date, plan the transition before the window closes, and decide early whether Oracle JDK is even the right default for you. Start with the Java licensing pillar, understand the paid alternative in the Universal Subscription guide, and brief leadership with the Java licensing white paper.
Oracle Java NFTC: frequently asked questions
What is the Oracle Java NFTC license?
The No Fee Terms and Conditions is a license, introduced with Java 17 in September 2021, that permits free production use of specific Oracle JDK versions while Oracle provides free updates for them. After the free update window closes, continued patching requires the paid subscription.
Is Oracle JDK 17 free under the NFTC?
Oracle JDK 17 was released under the NFTC and is free to use, including in production, during its free update period. Once that window ends, patched builds require the Java SE Universal Subscription, so the free status is time limited.
How do I avoid the NFTC subscription trap?
Track the free update end date for every Oracle JDK version in your estate and migrate before it closes, or standardise on a free OpenJDK build such as Corretto, Zulu, or Temurin, which carries no expiry and no Oracle metric.