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.
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
Oracle JDK 8u211
First Java 8 update under the OTN license.
Oracle JDK 17.0.13
First JDK 17 update under OTN.
Oracle JDK 21
Last month of JDK 21 updates under the No-Fee Terms (NFTC).
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 line
Builds
License
Commercial production use
Oracle JDK 8
8u202 and earlier
BCL
Freefor 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 riskfree 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
Freesame 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
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.
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.
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.
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
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.