Oracle JDK License Gate

Finds the Java lines in your build that Oracle now bills for, and the free line that replaces each one
Install
npx @readystack/oracle-jdk-license-gate file
Node 18+. The same 9 rules as the VS Code extension, from a terminal or CI.
Free
- 6 Oracle-licensed Java pulls in the bundled sample workflow _fixtures/dirty.yml: a setup-java oracle distribution, a setup-java graalvm distribution, a download.oracle.com tarball, an oraclelicense accept header, an Oracle registry image and an SDKMAN -oracle vendor suffix. Each is named with its line, its license basis, its free-window status on today's date and the free OpenJDK line that replaces it. The OpenJDK version of the same workflow reports 0. 9 rules in all, over the file you have open, with no network call.
--rules lists every rule
With a licence ($29 once)
- $29 once. The same 9 rules swept over every file in the workspace instead of the one you have open, plus a dated evidence pack - file, line, distribution, license basis, free-window date and swap - to hand to procurement or to an Oracle audit. Team and commercial use included.
@readystack/oracle-jdk-license-gate --dir ./templates --report html --out report.html
Oracle Java SE Universal Subscription is list-priced at $15 per employee per month, counting every employee in the company, not every Java install. 250 employees x $15 per employee per month x 12 months = $45,000 a year.
Use from an AI agent (MCP)
Claude Code · Cursor · Windsurf · any MCP client - add to your MCP config:
{ "mcpServers": { "oracle-jdk-license-gate": { "command": "npx", "args": ["-y", "@readystack/oracle-jdk-license-gate", "--mcp"] } } }
Tools: check_text and check_file (free) · check_dir (licence). The agent gets every finding with the line number.
Use in CI
- name: Oracle JDK License Gate
run: npx -y @readystack/oracle-jdk-license-gate --dir . --ci
(container: docker run --rm -v "$PWD:/work" getreadystack/oracle-jdk-license-gate --dir /work --ci)
The folder sweep, reports and CI mode need one licence — one payment, no subscription. Set READYSTACK_LICENSE=<key> or run --license <key> once.
Get a licence