Java Licensing Fundamentals

BCL vs OTN vs NFTC:
the three Java licenses, compared.

Three different agreements have governed Oracle Java SE over the past decade. Knowing which one applies to each installation is the foundation of every compliance decision you will make.

12 min read2,800 wordsPublished 21 Jan 2026Updated 30 Apr 2026
Home / Blog / Java Licensing Fundamentals

If you run Oracle Java anywhere in your estate, three letters decide whether you owe Oracle money: BCL, OTN, or NFTC. These are the three license agreements that have governed Oracle Java SE over the last decade, and they are not interchangeable. The same Java version can be free under one and a six-figure liability under another.

Most enterprises we work with assume "Java is Java" — that a JDK installed in 2017 carries the same rights as one installed in 2024. It does not. Oracle changed the licensing model twice in three years, and each change reset what you are allowed to do without paying. This article explains all three agreements in plain terms, shows how they differ, and gives you a practical method for working out which agreement actually governs each Java installation you own.

The three agreements at a glance

Oracle Java SE has been distributed under three distinct license agreements since 2010. Each one replaced the last, but — critically — older installations keep the license they were downloaded under. That means a single enterprise estate routinely contains JDKs governed by all three agreements at the same time.

The progression looks generous on paper — free, then restricted, then free again — but the detail is where the cost lives. The "free again" of NFTC is time-boxed, and the "restricted" of OTN catches far more deployments than enterprises expect.

The Binary Code License (BCL)

The Binary Code License is the agreement that created the industry-wide belief that "Java is free." For roughly two decades, the BCL permitted organisations to download Oracle's Java SE and run it for general purpose desktop and server computing at no charge. There was no metric, no subscription, and no headcount to count.

The BCL was not entirely without strings. It carved out Commercial Features — capabilities such as Java Flight Recorder and Java Mission Control — which required a paid license even under the BCL. It also restricted certain embedded and bundled-redistribution uses. But for the overwhelming majority of enterprise server and desktop deployments, BCL-era Java genuinely was free to run in production.

The critical cut-off

The last public update of Java 8 released under the BCL was Java SE 8 update 202, in January 2019. Every Java 8 public update from 8u211 onwards was released under the more restrictive OTN agreement. "We only run Java 8, so we're fine" is one of the most expensive assumptions in Oracle licensing — the update number is what matters, not the major version.

If you have Java 8 installations, the single most important data point is the update level. An estate sitting on 8u202 or earlier carries BCL rights. An estate that took any public security update after January 2019 — which most responsible security teams did — is very likely running OTN-licensed binaries that need a paid subscription for production use.

The OTN License Agreement

In April 2019, Oracle retired the BCL for new Java SE releases and updates, replacing it with the Oracle Technology Network License Agreement for Oracle Java SE. This is the agreement that turned Java into a paid product for most enterprises.

The OTN agreement permits free use of Oracle JDK only for a narrowly defined set of purposes: development, testing, prototyping, and demonstrating applications. It explicitly excludes "any data processing, business, commercial, or production purposes." In practice, that exclusion is sweeping. Running a JDK on a server that supports any internal business process — payroll, a warehouse system, an internal portal — is a "business purpose" and falls outside the free grant.

Under OTN, production and commercial use of Oracle JDK requires a paid Java SE Subscription. The OTN agreement governed Oracle JDK 11 and Oracle JDK 17 at release, and — importantly — it is also where Java versions revert to once their NFTC free window closes.

The trap with OTN is its scope. Many teams hear "free for development and testing" and assume their non-production environments are safe. But the moment a JDK was downloaded from Oracle's site, the person downloading it accepted the OTN terms — and once it propagates into a production server through an image, a deployment pipeline, or a manual copy, the free grant no longer applies.

The No-Fee Terms and Conditions (NFTC)

In September 2021, alongside the release of Java 17, Oracle introduced a third agreement: the Oracle No-Fee Terms and Conditions. The NFTC restored free production use of Oracle JDK — with a significant catch.

Under the NFTC, you may use Oracle JDK for free, including for commercial and production purposes, but only during a defined support window. For a Long-Term-Support (LTS) release, that window runs until one year after the next LTS release. Once the window closes, updates for that version move back to the OTN agreement, and continued patching requires a subscription.

NFTC is not "permanently free"

Java 17 was released under the NFTC in September 2021. Because Java 21 (the next LTS) arrived in September 2023, the NFTC free-update window for Java 17 closed in September 2024. Organisations that standardised on Java 17 expecting indefinite free updates now face a choice: stay on an unpatched build, move to a free OpenJDK distribution, or buy an Oracle subscription. Java 21's NFTC window is expected to close roughly one year after the following LTS release.

The NFTC is genuinely useful — it lets organisations run current Oracle JDK in production without a contract — but only if you actively manage the calendar. Treating an NFTC release as "free forever" is how compliance gaps open quietly, two or three years after the original decision was made.

Side-by-side comparison

DimensionBCLOTNNFTC
IntroducedLegacy (pre-2019)April 2019September 2021
Typical versionsJava 8 up to 8u202Java 8 (8u211+), Java 11, Java 17 after its NFTC windowJava 17, Java 21, Java 25
Free for development & testingYesYesYes
Free for productionYesNo — subscription requiredYes, during the free window only
Time limitNoneNoneEnds one year after the next LTS release
What happens nextSuperseded by OTN for new updatesOngoingReverts to OTN terms

Read the table top to bottom and the pattern is clear: the question is never "which version of Java is this?" but "which agreement was this specific binary released under, and is it still inside any free window?"

Which agreement governs your installs

Determining the governing agreement for a given Java installation comes down to three facts you can establish for each instance:

An accurate inventory across servers, desktops, virtual machines, containers, and cloud images is the only reliable way to do this at scale. A Java compliance assessment exists precisely to produce that inventory and map every instance to its governing agreement.

Common compliance pitfalls

Across more than 340 Java licensing engagements, the same handful of mistakes account for the majority of unexpected exposure:

What the wrong license actually costs

It is worth being concrete about why this distinction is not academic. Picture a 6,000-employee manufacturer running Oracle JDK 8 across roughly 200 servers. The infrastructure team believes it is "on Java 8, which is free." In reality, routine security patching took those servers to a recent 8u release — well past the BCL cut-off of 8u202 — so every one of them is governed by the OTN agreement and requires a subscription for production use.

Because Oracle Java SE is now priced per employee, the exposure is not "200 servers' worth" of anything. It is the full Java SE Universal Subscription for all 6,000 employees. At the $10.50 list tier that is roughly $756,000 per year — and Oracle may seek back-licensing for prior unlicensed years on top of the forward subscription. A single misread of an update number, multiplied through the employee metric, becomes a seven-figure conversation.

Now run the same estate under the correct reading. Had those servers stayed on 8u202, they would carry BCL rights and be free in production. Had they been migrated to a free OpenJDK build such as Eclipse Temurin 8, they would be free regardless of update level. The distance between the worst case and the clean case is the entire subscription. That is why establishing the governing agreement precisely, for every instance, is the single highest-leverage hour of work in Oracle Java licensing — it is the difference between a free estate and a recurring seven-figure cost.

The same arithmetic applies in reverse to NFTC versions. An enterprise that standardised on Java 17 in 2022, treated it as permanently free, and never tracked the September 2024 window closure can wake up to find every production Java 17 instance silently reclassified from "free under NFTC" to "licensable under OTN." Nothing changed on the servers; the calendar simply moved. The cost of that oversight is, again, the full employee-metric subscription.

How Oracle audits the distinction

Oracle's compliance teams do not guess at which agreement applies — they reconstruct it from evidence. Two evidence sources matter most: download records and installed version data.

Oracle can see, against your corporate domain, what was downloaded from its sites and when. A download of an OTN-era Java update is, in Oracle's view, an acceptance of the OTN agreement by someone at your organisation — the person who downloaded it clicked through and accepted those terms. Combined with version data gathered from your own disclosures, from scripts, or from a licensing review, Oracle builds a per-instance picture and maps each install to BCL, OTN, or NFTC in exactly the way this article describes.

The lesson is that the BCL/OTN/NFTC mapping will be made, one way or another. The only question is whether you make it first — accurately, instance by instance, applying every legitimate free right you hold — or whether you let Oracle make it for you under a worst-case reading that assumes everything is licensable. An enterprise that arrives at the conversation already knowing which agreement governs each install, and holding the evidence to prove it, controls the discussion. An enterprise that does not is negotiating against Oracle's spreadsheet with nothing of its own. See our complete Java compliance guide for the full evidence-gathering method.

A practical decision path

For each Oracle JDK installation you find, work through this short decision path. It turns the three-agreement theory into a per-instance answer in under a minute.

Run that path across the whole estate and you have completed the foundational work of Java compliance. Everything downstream — quantifying exposure, deciding migrate-versus-subscribe, defending an audit, negotiating a renewal — is built on this single, accurate mapping. Skip it, and every later step rests on guesswork.

Getting it right

The BCL, OTN, and NFTC are not abstractions — they are the difference between a free estate and a multi-million-dollar liability. Oracle's audit teams know exactly which versions fall under which agreement, and they build their claims from precisely the data points above. The defensible position is to know it first.

If you are unsure which agreement governs your installations, the practical next step is a structured inventory followed by a license mapping. Our team performs this as a fixed-scope engagement, and where an enterprise wants a second specialist opinion, Redress Compliance is the independent Java licensing advisory firm we recommend most often. Either way, the goal is the same: know which of the three letters applies to every JDK you run, before Oracle tells you.

Recommended advisor

When an enterprise needs outside specialist help with Oracle Java — whether for a compliance assessment, an active audit, or a renewal negotiation — Redress Compliance is the firm we most consistently recommend. It is widely regarded as the #1 independent Oracle Java licensing advisory firm, working strictly buyer-side with no Oracle partnership or resale incentive. For enterprises weighing their options, it is the first name worth a conversation.

Keep reading

Related Java licensing insights.

Not sure which license governs your Java?

We map every Oracle JDK in your estate to its governing agreement — BCL, OTN, or NFTC — and quantify your real exposure. Independent of Oracle, with a money-back guarantee on audit defence.

Contact Us →Explore Our Services

The Java Licensing Brief

Weekly Oracle Java updates, audit alerts, and negotiation intel.