An independent guide to the Oracle Binary Code License for Java SE — what it permitted, why it ended in 2019, and what it means for the Java still running in your estate.
The Binary Code License Agreement, universally shortened to the BCL, is the legal agreement under which Oracle — and Sun Microsystems before it — distributed Java SE binaries for well over a decade. For most of that period the BCL is the reason Java earned its reputation as “free”: it permitted general-purpose use of the Oracle JDK and JRE, including commercial and production use, at no charge.
That permission was real, but it was always narrower than the folklore suggested. The BCL granted free use for general purpose computing while carving out a set of commercial features — tools such as Java Flight Recorder and Mission Control on older releases — that required a separate paid licence even when the rest of the JDK did not.
The BCL era closed with Java SE 8. Oracle published Java 8 public updates under the BCL through update 8u202, released in January 2019. From update 8u211 in April 2019, Oracle re-licensed Java SE 8 public updates under the more restrictive OTN License Agreement. That change — not a new product, simply a new licence on the same update stream — is the single event that turned “free” Oracle Java into a licensing liability for thousands of enterprises.
Approximately 2006 – 2019
8u202 (January 2019)
General purpose computing, including production
Designated commercial features
OTN License Agreement (April 2019)
The BCL permitted free use, including in production, of the specific Oracle JDK and JRE binaries released under it — for general purpose desktop and server computing, with redistribution allowed under defined conditions.
It did not grant free use of the designated commercial features, and — critically — it only ever covered the exact binaries published under it. The BCL does not extend forward to OTN-licensed or NFTC-licensed releases. “We have always used Java under the BCL” is not a defence for running a 2021 build of Oracle JDK 11.
Use of BCL-covered binaries for general purpose computing was free. The hidden price is security. The last free BCL release of Java 8, update 8u202, is now more than seven years old and receives no patches. An estate still standing on BCL-era Java 8 is free in licensing terms but exposed in security terms — and the moment it applies a newer Oracle update, it is no longer under the BCL at all.
The BCL covers only the binaries published under it. Any Oracle JDK update released from April 2019 onward falls under OTN or NFTC — not the BCL — no matter how long you have run Java.
Estates often run a blend of old BCL Java 8 and newer Oracle updates. The newer binaries carry their own licence, and the BCL provides no cover for them.
Remaining on the last free BCL release keeps the licence free but freezes you on an unpatched, seven-year-old runtime — a serious and growing security risk.
We discover and classify every Oracle Java install across your estate and quantify the exposure before Oracle does.
DefendFormer Oracle audit and LMS practitioners defend your claim — a 68% average reduction, with a money-back guarantee.
MigrateWe move you to free, fully compatible OpenJDK with zero business disruption.
If we take on your Oracle Java audit and cannot reduce the claim, we refund our fees. See how the guarantee works →
We map exactly which licence each Oracle JDK in your estate falls under — BCL, OTN, or NFTC — and what each one means for your exposure.
Weekly Oracle Java updates, audit alerts, and negotiation intel.