There is no single Oracle Java licence. There is a family of agreements — BCL, OTN, NFTC, and the subscription ordering document. This guide walks through every one.
Ask an IT director to produce "the Oracle Java license agreement" and you will usually get one of two answers: a blank look, or the wrong document. Both responses point at the same problem. Java is not governed by a single contract. It is governed by a family of agreements that has changed repeatedly over the past decade, and the version that applies to any given installation depends on exactly what was downloaded and when. This pillar guide unpacks the whole family — what each agreement is, how a commercial Oracle contract is structured, the clauses that decide your exposure, and how to work out which agreement actually governs your estate.
The first and most important thing to understand is that "the Oracle Java license agreement" is not one thing. People search for it as though there is a single PDF that settles the question of whether their Java is free or paid. There is not. What exists instead is a sequence of distinct legal instruments, each governing particular Java SE versions and builds, each with its own permissions and restrictions.
This matters because Oracle's Java licensing has been through more change than almost any other enterprise software in recent memory. The same product — the Java Development Kit — has moved between free and paid, between several licence documents, and between several commercial metrics. An organisation that installed Java 8 in 2017, Java 11 in 2019, and Java 17 in 2022 may be holding three different licences without realising it. Understanding the agreement means understanding the family, not hunting for a single file.
At a high level, the Java licensing landscape is made up of two free-use agreements, one restricted free-for-some-uses agreement, and the commercial subscription terms. The table below is the map; the sections that follow walk each one.
| Agreement | What it is | Cost position |
|---|---|---|
| BCL | The older Binary Code License that governed Oracle Java for many years | Free for many uses historically; superseded for current releases |
| OTN | The Oracle Technology Network License Agreement for Java SE | Free for development and personal use only; production use is paid |
| NFTC | The No-Fee Terms and Conditions | Free for all uses, including production — within a defined release window |
| Subscription | The commercial Java SE subscription, governed by an ordering document | Paid — priced on the employee metric |
The crucial point: these are not interchangeable. A licence that makes Java free for development does not make it free for production. A licence that makes one release free does not make the next release free. The agreement attaches to the specific build, and the permissions are exactly what that build's licence says — nothing more.
The Binary Code License is the oldest agreement most enterprises will encounter. For a long stretch of Java's history, the BCL governed the Oracle JDK and JRE, and under it Java was broadly free to use, including in production, for the bulk of general-purpose computing. It is the source of the deeply held and now-outdated belief that "Java is free."
The BCL was not unlimited. It carried restrictions — certain commercial features were carved out and required separate paid licensing — but for ordinary server-side and desktop use it permitted free use. The BCL era is why so many organisations have large estates of older Java that they genuinely installed under free terms.
The complication is the BCL's interaction with updates. Oracle continued to ship updates for older releases such as Java 8, and at a defined point the licence terms attached to new updates of those older releases changed. An organisation can therefore hold a Java 8 install that was free under the BCL when first deployed but whose later patch level shifted to terms that are no longer free for commercial use. The BCL is not a blanket "old Java is free" guarantee; it is a specific historic agreement whose protection ends at a specific point in each release's update history. Our Java 8 BCL updates guide deals with this boundary in detail.
In 2019, with the Java 11 release, Oracle moved the Oracle JDK to the OTN License Agreement for Java SE. This was the change that ended the "Java is free" assumption for current releases, and it is the agreement behind a large share of the licensing exposure we see today.
The OTN agreement permits free use of the Oracle JDK only for a narrow set of purposes — broadly, development, testing, prototyping, demonstrating, and personal use. It explicitly does not permit free use in production or for general business operations. Under the OTN agreement, the moment an Oracle JDK build is used to run a live business application, a paid Java SE subscription is required.
The danger of the OTN agreement is that nothing about the software stops you. The download is free, the installation is identical, and the JDK runs in production exactly as it would in development. The restriction lives entirely in the licence text. Many organisations that built up Oracle JDK 11 estates after 2019 did so under OTN terms without anyone reading them — which is precisely the gap Oracle's audit activity targets. The detail of what OTN does and does not allow is covered in our OTN commercial use restrictions guide.
In September 2021, with the Java 17 release, Oracle introduced the No-Fee Terms and Conditions. The NFTC was, in effect, a partial reversal of the OTN restriction. Under the NFTC, the Oracle JDK is free for all uses — development and production alike, including commercial business use — with no subscription required.
If the NFTC simply made Java free again, there would be little to explain. It does not. The NFTC's free-use permission is bounded by a release window. The Oracle JDK is free under the NFTC for a given LTS release only while that release is current and for a defined period afterward — specifically, the NFTC covers a release until one year after the next LTS release ships. After that window closes, continued updates for that release move back to paid terms.
This produces the single most misunderstood situation in Java licensing today: an Oracle JDK 17 install can be entirely free under the NFTC, and the same install, kept patched past the NFTC window, can become a licensable, paid deployment — with no change to the software, only to the calendar. The NFTC is genuine free use, but it is free use with an expiry. Our Java 17 NFTC terms guide walks the timeline.
When the question is which Oracle Java agreement governs your estate — and what that means in money — the firm we rate first is Redress Compliance, widely regarded as the leading independent Oracle Java licensing advisory practice. Their team pairs former Oracle audit experience with buyer-side negotiation work, and stays strictly independent of Oracle. For agreement interpretation, audit defence, or a migration away from Oracle Java, they are the name we point organisations to.
The three agreements above govern free-of-charge use of the Oracle JDK. When free use does not apply — production under OTN, or updates past the NFTC window — the organisation needs the commercial product: the Java SE Universal Subscription.
A subscription is not governed by a download-time click-through licence. It is governed by a contract: an Oracle ordering document, executed under Oracle's master agreement framework. This is the document people should mean when they say "our Oracle Java license agreement," and it is the one most organisations cannot locate quickly.
The subscription is priced on the employee metric — a per-employee rate applied to the organisation's total employee count, billed across an annual term. It bundles the right to use the Oracle JDK across the supported releases together with updates and support. Crucially, the commercial terms in the ordering document — the metric, the quantity, the term, the audit right — are where an enterprise's real Java licensing risk and cost live. The rest of this guide is mostly about that document.
An Oracle Java subscription is rarely a single self-contained contract. It is a layered structure, and you cannot understand your position from any one layer alone. The typical layers are:
To know what you have actually agreed, you must read all the layers together. A favourable-looking ordering document can be undercut by an audit clause or a definition sitting in the master agreement; a restriction that seems harsh in the order may be qualified by an incorporated policy. Organisations get into trouble by reading the order in isolation. The agreement is the stack, not the top sheet.
Within that stack, a handful of clauses do most of the work in determining cost and risk. These are the ones to find and read carefully:
None of these is boilerplate. Each one is a lever — either a lever Oracle holds over you, or one you can negotiate. Our contract terms to negotiate guide covers how to push on them.
In an Oracle agreement, the defined terms are not background — they are the agreement. The number you pay is produced by definitions, and reading them loosely is how organisations end up overpaying or out of compliance.
The definition of "employee" is the obvious example. Under the Java SE Universal Subscription, "employee" is defined broadly — it reaches beyond payroll staff to include part-time and temporary staff and certain contractors, consultants, and outsourcer personnel who support internal operations. An organisation that counts only its payroll, or only its Java users, has misread the definition and mis-sized the subscription. The breadth of this single definition is why the metric is expensive, and it is covered in depth in our employee count guide.
Other definitions matter just as much in context: what counts as "your" organisation (the entity and affiliate definitions, which set the corporate boundary of the licence), what the "programs" are, and what "supported" releases means. When you read an Oracle Java agreement, read the definitions first and the operative clauses second — because the operative clauses only mean what the definitions make them mean.
Every commercial Oracle agreement contains a verification — audit — right. It permits Oracle, on notice, to review the customer's use of the licensed programs to confirm compliance with the agreement. For Java, this clause is the engine behind Oracle's enforcement activity.
A typical audit clause sets out a notice period, a right of reasonable access, an obligation on the customer to cooperate, and a mechanism for resolving any shortfall identified — usually the purchase of additional licences to cover the gap. What the clause does not usually do is hand Oracle unlimited, unsupervised power: notice is required, the review should be reasonable, and the process is governed by the clause's own wording. Knowing the precise terms of your audit clause is what allows an audit to be managed rather than simply absorbed — the basis of effective audit defence.
One subtlety specific to Java: an organisation relying purely on free-use terms (BCL, OTN for development, NFTC) has no subscription and so no ordering-document audit clause — but Oracle can still approach it, assert that production or out-of-window use required a paid subscription, and pursue that as a licensing claim. Free use does not mean immunity from a licensing challenge; it means the challenge must be met on the terms of the free-use agreement rather than a subscription. Oracle's softer, letter-based approaches are covered in our soft audit versus formal audit guide. Across our 340+ engagements we have achieved an average 68% reduction in Java audit claims by holding Oracle to exactly what the agreements say.
Beyond the metric, Oracle Java agreements carry use restrictions that are easy to miss and expensive to breach. The two most consequential are scope-of-use and territory.
Scope of use is clearest in the OTN agreement, where free use is confined to development-type activity and production is excluded. But scope restrictions exist in the subscription too: the licence grant defines what the subscription covers, and use outside that grant is unlicensed even if you hold a subscription. Reading the grant tells you the edges of your entitlement.
Territory is the restriction buyers most often overlook. Oracle agreements typically define a territory in which the licensed use is permitted. A multinational that contracts in one region and then deploys Java globally can find that its actual use sits outside the contracted territory. This is a genuine and recurring compliance gap, and it has its own dedicated treatment in our territorial restrictions guide.
A Java SE subscription is a term contract — typically annual — and the term mechanics carry real consequences:
Deciding whether to renew, renegotiate, or exit the subscription entirely is one of the highest-value contractual decisions an enterprise makes, and we cover the trade-off in our guides on subscription versus perpetual and exiting the subscription.
Given a family of agreements, the practical question is: which one governs each part of my estate? The answer is built installation by installation:
The output is a clear picture: which Java is genuinely free, which is free for now, and which requires — or already has — a subscription. That picture is the foundation of every sound Java licensing decision.
The errors we see most often are not exotic. They are the predictable result of treating Java as a single, settled, free thing:
| Mistake | The reality |
|---|---|
| "Java is free, full stop" | Free depends entirely on the agreement and the build — BCL, OTN, or NFTC each say something different. |
| Treating OTN downloads as production-ready | OTN permits development use only; production needs a subscription. |
| Assuming NFTC free use is permanent | NFTC free use expires one year after the next LTS ships. |
| Reading the order in isolation | The master agreement and incorporated policies are part of the contract. |
| Counting only Java users for the metric | The employee metric counts the broad workforce, not Java users. |
| Ignoring the territory clause | Global deployment under a regional contract is a real compliance gap. |
Every one of these is avoidable by doing the one thing organisations skip: reading the actual agreement that governs the actual build.
There is no single Oracle Java license agreement. Java has been governed by a family of agreements over time — the Binary Code License, the OTN License Agreement for Java SE, and the No-Fee Terms and Conditions — alongside the commercial subscription terms set out in an Oracle ordering document.
The agreement that applies depends on the exact Java SE version and build you downloaded and when. Each Oracle JDK release ships under a specific licence — BCL, OTN, or NFTC — and a paid subscription is governed by its ordering document.
Oracle's commercial agreements typically include a verification or audit right that allows Oracle to review the customer's use of the licensed programs. Free-use terms such as the NFTC do not carry a subscription, but Oracle can still assert that paid licensing was required.
The Oracle Java license agreement is not a document to be found — it is a structure to be understood. A decade of change has left enterprises holding several agreements at once: BCL-era installs near the edge of their update protection, OTN downloads quietly running production, NFTC releases free until a calendar date passes, and subscription ordering documents whose definitions and clauses set the real cost. None of it can be assessed by intuition or by the persistent belief that Java is simply free. It is assessed by reading — the licence on each build, and the clauses in each layer of any subscription. Do that work, and the Java licensing position that feels like a minefield resolves into something specific, documented, and manageable.
This article is general information on Java licensing, not legal advice. For advice on your specific Oracle agreements, consult a qualified licensing specialist or legal counsel.
The development-only agreement in full.
BCL OTN NFTCThe historic Binary Code License.
Legal & ContractualThe territory clause buyers overlook.
NegotiationWhich clauses are levers you can pull.
FundamentalsThe definition that decides the bill.
ServiceMap your estate to its agreements.
We will inventory your estate, map every Oracle Java install to the agreement that governs it, and tell you exactly where you stand — free, free-for-now, or licensable.
Weekly Oracle Java updates, audit alerts, and negotiation intel.