Ends Sept 2026Oracle JDK 21 · No-Fee Terms update window

Oracle asked about your Java? Build the inventory in an hour.

Oracle's Java license reviews ask for every deployment by version, and the subscription is priced per employee. RuntimeClear is an open-source, read-only scanner plus an in-browser report that finds Oracle Java across servers, laptops, container images and CI, shows which builds are under paid terms or one update away, and how to move each one to a free OpenJDK build.

  • No account or agent
  • No network calls
  • Nothing uploaded
  • MIT-licensed scanner

Built and supported by Tech Build Dreams LLC, Miami, Florida. Scanner source, MIT.

Findings ledger sample output

Sample
Host · versionFoundStatus
win-fin-078u381 C:\Program Files\Java\jre1.8.0_381 Paid license
app-0217.0.14 /usr/lib/jvm/jdk-17-oracle-x64 Paid license
build-0121.0.8 /usr/lib/jvm/jdk-21-oracle-x64 At risk
build-01ref Dockerfile:1 FROM container-registry.oracle.com/java/jdk:21 At risk
win-fin-07auto-update Java Update Scheduler (enabled) At risk
mac-dev-0221.0.2 /Library/Java/JavaVirtualMachines/graalvm-21.jdk Needs review
mac-dev-0221.0.8 /Library/Java/JavaVirtualMachines/temurin-21.jdk Free
Fictional hosts. Status is shown as shape, label and color.runtimeclear.scan/v1

Key license dates

  1. Oracle JDK 8u211

    First Java 8 update under the OTN license.

  2. Oracle JDK 17.0.13

    First JDK 17 update under OTN.

  3. Oracle JDK 21

    Last month of JDK 21 updates under the No-Fee Terms (NFTC).

  4. October CPU

    Further JDK 21 updates planned under OTN.

01 · License terms, per Oracle's published pages

What changes, and what doesn't

Oracle licenses each Oracle JDK update under the terms in force when it ships. The September 2026 date changes the terms for JDK 21 updates released after it. It does not reach back into builds already released.

Oracle JDK builds by license. Oracle OpenJDK builds from jdk.java.net are GPL and not listed.
Release lineBuildsLicenseCommercial production use
Oracle JDK 8 8u202 and earlier BCL Free for general-purpose computing
Oracle JDK 8 8u211 and later (Apr 2019 →) OTN Paid license
Oracle JDK 11 every Oracle JDK 11 build OTN Paid license
Oracle JDK 17 17 – 17.0.12 NFTC Free
Oracle JDK 17 17.0.13 and later (Oct 2024 →) OTN Paid license
Oracle JDK 21 21 – updates released through Sept 2026 NFTC At risk free as installed; the next update is not
Oracle JDK 21 October 20, 2026 CPU and later OTN Paid license
Oracle JDK 25 updates through Sept 2028 NFTC Free same cliff, two years later

What a license review asks for

Oracle's formal Java audit letters request global employee counts, deployments by version, installation inventories, and virtualization and cloud details.8 RuntimeClear produces the inventory part. Talk to counsel before sending anything to Oracle.

Builds you already have keep their terms

An Oracle JDK 21 build released under the No-Fee Terms and Conditions was licensed under NFTC.5 Oracle applies OTN to subsequent JDK 21 updates,1 so nothing on disk turns into a paid license on October 1 by itself.

The exposure arrives with the next update

From the October 2026 Critical Patch Update, Oracle JDK 21 updates are planned under the Java SE OTN License.2 They usually arrive without anyone deciding: auto-updaters, :21 or :latest image tags, setup-java with distribution: oracle, package repos, golden images.

Some builds are already under OTN

Oracle JDK 8u211 and later, every Oracle JDK 11 build, and Oracle JDK 17.0.13 and later are OTN-licensed now.4 OTN allows personal and development use; commercial production use needs a Java SE subscription.6

The subscription counts employees, not installs

Oracle's Java SE Universal Subscription is priced per employee, and its definition of employee includes full-time, part-time and temporary staff plus certain contractors.7 The price follows headcount, not the number of machines running Java.

Not legal advice

This is a summary to help you find installs. Oracle's pages and your agreements with Oracle are what count. Every rule and its source is in the public repository.

Sources

  1. Oracle Java Downloads, JDK 21JDK 21 will receive updates under the NFTC, until September 2026 … Subsequent JDK 21 updates will be licensed under the Java SE OTN License.
  2. Oracle Java blog: JDK 21 approaches end of permissive license (Aug 14, 2026)
  3. Oracle Java SE Support Roadmap
  4. Oracle JDK License General FAQs
  5. Oracle No-Fee Terms and Conditions (NFTC)
  6. Oracle Technology Network License Agreement for Oracle Java SE (OTN)
  7. Oracle Java SE Universal Subscription global price list (PDF)
  8. Tactical Law Group via Mondaq: 2026, the year Oracle's Java audits get real (April 2026)

02 · What it inventories

Every place Oracle Java hides, in one JSON file per host

The scanner records facts: paths, versions, vendors, build types and single matching lines. The report decides the license status, and anything it can't decide is marked needs review.

hosts

Installed runtimes

Java homes on Linux, macOS and Windows: package databases, /usr/lib/jvm, Program Files and the registry, SDKMAN, asdf, IDE-managed JDKs and running java processes. Version, vendor and build type come from each release file.

images

Container images

Dockerfile, Compose and Kubernetes lines that pull container-registry.oracle.com/java images, deprecated openjdk tags, or free vendor images.

pipelines

CI and build tools

setup-java with distribution: oracle, GitLab CI, Jenkinsfiles and scripts that download from download.oracle.com, plus SDKMAN, Gradle and Maven toolchains.

updaters

Auto-updaters

The Windows Java Update Scheduler and Oracle's macOS updater: the way OTN builds usually arrive without anyone deciding.

Never: network connections, changes to the system, sudo, process arguments, environment variables beyond PATH and JAVA_HOME. Exactly what it reads

03 · Procedure

How it works

One script per platform, one JSON file per host, and a report page that never sends that JSON anywhere.

  1. Run the open-source scanner on each host

    Read-only, no network calls, no root required. It reads Java home directories and their release files, package databases, PATH, running java executables and, if you point it at a repo, the single matching lines of Dockerfiles, Kubernetes and Compose YAML, CI workflows, SDKMAN, Gradle and Maven toolchains. Read the script first: it is one file, MIT-licensed.

    Linux · macOS (bash 3.2+) Read the source
    $ curl -fsSLO https://raw.githubusercontent.com/techbuilddreams/runtimeclear/v1.0.1/runtimeclear.sh
    $ less runtimeclear.sh
    $ bash runtimeclear.sh --out scan.json --repo ~/src/my-service
    Windows (PowerShell 5.1+) Read the source
    PS> Invoke-WebRequest https://raw.githubusercontent.com/techbuilddreams/runtimeclear/v1.0.1/runtimeclear.ps1 -OutFile runtimeclear.ps1
    PS> notepad .\runtimeclear.ps1
    PS> powershell -NoProfile -ExecutionPolicy Bypass -File .\runtimeclear.ps1 -Out scan.json

    Scanner v1.0.1. Add --anonymize (-Anonymize) to replace hostnames with a hash. Verify the download against SHA256SUMS before running; see how.

  2. Drop the JSON files into the report page

    Open the report tool and drag in one file or a few hundred. Classification runs in your browser against a versioned rules file; the files are never uploaded. You immediately see host count, installs, references and how many findings fall into each status.

  3. Get findings, a migration runbook and a printable PDF

    • Each finding with the product, the license it falls under, why, what to do, and a link to Oracle's page
    • Replacement commands grouped by platform: apt, dnf/yum, Homebrew, winget, Dockerfile base images, GitHub Actions, SDKMAN, Gradle and Maven toolchains
    • A cost-exposure estimate from Oracle's public per-employee price list
    • A printable report with your organization name, date and rules version, for your records or your auditor

04 · Pricing, one-time, USD

The count is free. The report is $149.

The scanner and the summary counts cost nothing and stay that way. Pay once when you want the details, the runbook and the document.

Compare plans in detail
  • Free

    $0 forever

    Scanner, counts and status totals.

    Get the scanner
  • MSP

    $399 one-time · up to 10 organizations

    The full report for each client organization you serve.

    Buy MSP · $399

14-day refund, no questions. Refund policyCheckout by Stripe. Run the free scan before paying.

05 · For IT service providers

One scanner, ten client reports

The MSP plan covers up to 10 client organizations for $399, once, with unlimited hosts in each.

Nothing to install on client machines: pipe the script over SSH, collect one JSON per host, and keep each client's files in its own folder. Load one client at a time into the report, set the organization name, and print a PDF with that name, the date and the rules version.

  • Same read-only script your client's security team can review
  • Hostnames can be hashed with --anonymize before files leave the client
  • Runbook commands grouped by platform for the remediation quote

Buy MSP · $399 Questions? luis@runtimeclear.com

Scan a host list over SSH (nothing installed) Read the source
$ while read -r h; do
    ssh "$h" 'bash -s -- --quiet --out runtimeclear.json' < runtimeclear.sh &&
      scp "$h:runtimeclear.json" "./scan-$h.json" && ssh -n "$h" rm -f runtimeclear.json
  done < hosts.txt

06 · Questions

Questions sysadmins ask first

Is this legal advice?

No. RuntimeClear is an educational inventory tool. It maps what it finds to Oracle's published license terms and links the pages it relies on. Your contracts with Oracle, and your counsel or licensing contact, decide what applies to you.

Are you affiliated with Oracle?

No. RuntimeClear is built by Tech Build Dreams LLC and is not affiliated with, endorsed by or sponsored by Oracle. We don't sell Oracle licenses and we don't get paid by any JDK vendor.

Does anything leave my network?

The scanner makes no network calls. It writes one JSON file on the host, and you decide where that file goes. The report page reads the file with your browser's File API and classifies it in JavaScript on your machine. Nothing from the scan is uploaded.

The only server call is after payment: the page sends your Stripe checkout reference to our server to confirm the purchase. It contains no scan data. Details on the security page and in the privacy policy.

Does it cover Docker, Kubernetes and CI?

Yes, as references. Point the scanner at a repository with --repo and it records the matching line from Dockerfiles (for example container-registry.oracle.com/java/jdk), Compose and Kubernetes YAML, GitHub Actions setup-java with distribution: oracle, GitLab CI, .sdkmanrc, .tool-versions, and Gradle and Maven toolchains. It does not pull or inspect image layers; run the scanner inside a running container if you need to see what is actually installed there.

What about Java bundled with Oracle products or third-party apps?

Some vendors ship a JDK inside their product, and some Oracle products include a restricted-use Java license. The scanner can see those installs but can't see your contracts, so they are marked needs review. Check with the application vendor or your Oracle licensing contact before changing or removing them.

What if Oracle changes the rules?

Every rule lives in one versioned rules file with a citation and the date it was last checked. The report shows the rules version and date on screen and on the PDF. When Oracle changes its terms we update the file and note it in the changelog; re-open the report and your existing scan files are re-classified.

What does “at risk” mean exactly?

The install or reference is free to use today, but it is set up to move onto OTN-licensed builds: an Oracle JDK 21 that gets updated, an enabled Java auto-updater, a floating image tag or a CI step that resolves to Oracle's latest JDK 21. Pinning or switching it before the October 2026 update keeps it free.

How do refunds work?

Email support@runtimeclear.com within 14 days of purchase. We refund in full, no questions. See the refund policy.

Run the scanner on one host now.

If it finds nothing, you've spent a few minutes and $0.