Java Licensing — Updated 2026

Oracle Java Audit Scripts: What They Are and How They Work

Technical deep dive into Oracle's LMS/GLAS Collection Tool for Java — how audit scripts scan your systems, what data Oracle collects, common misidentifications, and best practices for protecting your organization during formal and soft audits.

Java Audit DefenseOracle Licensing 2026Fredrik FilipssonUpdated February 2026
🏠 Oracle Knowledge HubOracle Java AuditORACLE Java Audit Scripts What They Are and How They...
1 in 5
Organizations Expected to Face Java Audit by 2026
$15
Per Employee/Month — Java SE Universal Subscription
45 Days
Standard Oracle Audit Notice Period
2×/Year
Oracle Script Update Frequency

📋 Executive Summary

When Oracle conducts a Java license audit, one of the most critical — and misunderstood — elements is the request to run their LMS/GLAS Collection Tool scripts. These automated diagnostics scan your entire environment for Oracle Java installations, capture version details, and generate the evidence Oracle uses to build compliance claims. With Oracle aggressively enforcing the Java SE Universal Subscription (employee-based model at ~$15/user/month) and Gartner predicting that 1 in 5 Java-using organizations will face an audit by 2026, understanding these scripts is no longer optional — it's essential audit defense.

This guide explains exactly what the scripts do, what data they collect, how Oracle uses the results, and — most importantly — how to handle script requests in a way that protects your organization's interests. Whether you're facing a formal Java audit or a soft audit inquiry, this playbook is your preparation guide.

📚 This article is part of:
📖 Read our Oracle Java Audit guide🏠 Back to Oracle Knowledge Hub

📑 Table of Contents

  1. What Are Oracle's Java Audit Scripts?
  2. How the Scripts Work — Technical Overview
  3. What Data Oracle Collects and Why
  4. Oracle's Motives and Use of Script Data
  5. Best Practices for Handling Audit Script Requests
  6. Alternatives: Proactive Self-Assessment
  7. 2026 Context: Escalating Java Enforcement
  8. Recommendations
  9. Frequently Asked Questions

1. What Are Oracle's Java Audit Scripts?

Oracle's audit scripts are part of the broader Oracle LMS Collection Tool suite — scripts and programs provided by Oracle's Global Licensing and Advisory Services (GLAS, formerly LMS) team. They are designed to collect detailed data about Oracle software usage on your servers. For Java specifically, Oracle has included modules in these scripts to find and report on every Oracle Java installation across your environment.

Think of these scripts as Oracle's automated inventory tool during an audit. Rather than relying on manual customer-provided lists (which Oracle considers time-consuming and inaccurate), they use automated scanning to identify installations of Oracle products, including Java SE, across all accessible machines.

File System Scanning

Searches common installation paths (/usr/java, /opt/java, Program Files\Java, etc.) and checks Windows registry entries for installed JRE/JDK versions.

Version Identification

Executes java -version on each discovered instance to capture exact version, update level, and vendor (Oracle vs. OpenJDK).

Installation Inventory

Counts distinct Java binaries, identifies update levels, and checks for commercial features like Java Mission Control or Flight Recorder.

Output Generation

Produces log/CSV files that Oracle's auditors analyze to identify unlicensed installations and calculate compliance claims.

Importantly, these scripts are usually read-only diagnostics — they should not make changes to your system, only collect information. Oracle typically asserts that running them won't harm your systems. Nonetheless, caution is advised, and you should always review scripts before executing them in production environments.

Expert Insight

Oracle's scripts are not publicly downloadable — they are provided specifically for audits or on special request. Oracle updates them approximately twice per year to account for new product versions and licensing rule changes. If presented with a script, always ask Oracle which version it is and whether it's the most current. An outdated script might erroneously flag something that is no longer an issue under updated rules. Our Java Audit Defense team reviews every script package our clients receive to ensure accuracy.

🛡️ Received a request to run Oracle's Java audit scripts? Don't execute until you've consulted experts.

Java Audit Defense →

2. How the Scripts Work — Technical Overview

From a technical perspective, Oracle's Java audit script is part of a larger toolkit that can cover multiple Oracle products — databases, middleware, and Java. Understanding the mechanics helps you maintain control during the process.

Script Package Structure

Oracle typically provides a bundle (zip or tar file) containing scripts for various technologies. You may receive a single package that, when run, checks for all Oracle software. The package typically contains:

ComponentPlatformPurpose
Shell scripts (.sh)Unix / LinuxScan file system, execute version commands, enumerate packages
Batch files (.bat/.cmd)WindowsScan Program Files, read registry keys, capture version data
SQL scripts (.sql)Database hostsQuery Oracle database configurations (not Java-specific, but often bundled)
Configuration filesAllDefine scan paths, output formats, and product-specific parameters
Output templatesAllCSV/log file formats for structured data collection and submission

The Scanning Process — Step by Step

Step 1: Installation Path Scanning

+

The script scans common Java installation directories across the file system. On Unix/Linux, this includes paths like /usr/java, /opt/java, /usr/lib/jvm, and any custom locations. On Windows, it reads the registry keys under HKLM\SOFTWARE\JavaSoft and searches Program Files\Java directories. The script also checks environment variables (JAVA_HOME, PATH) and looks at known indicators of Java — such as installed system packages (e.g., RPMs on Linux).

The goal is to locate every instance of Java on the server — not just the "primary" installation, but any secondary, bundled, or forgotten copies. This includes Java that came embedded with application servers like WebLogic or third-party applications.

Step 2: Edition & Vendor Identification

+

Once a Java installation is found, the script executes java -version or similar commands to capture the version string. This is crucial because the output reveals:

Oracle JDK/JRE output typically includes:

java version "1.8.0_381"
Java(TM) SE Runtime Environment (build 1.8.0_381-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.381-b09, mixed mode)

OpenJDK output typically includes:

openjdk version "17.0.9" 2023-10-17
OpenJDK Runtime Environment (build 17.0.9+9)
OpenJDK 64-Bit Server VM (build 17.0.9+9, mixed mode)

The "Java HotSpot(TM)" designation and the version/update number are what Oracle uses to determine if an installation requires a paid subscription. Oracle JDK 8 beyond update 202, for example, requires a commercial license. The script collects all this version data for every discovered instance.

Step 3: Counting, Summarization & Environmental Data

+

The script counts distinct Java installations per server and may attempt to identify whether binaries were recently executed (by checking file timestamps or scanning running processes). It enumerates every instance and correlates it with the number of physical or virtual servers — e.g., "Java installed on X out of Y servers scanned."

The scripts also capture environmental data: server hostname, CPU information, operating system, and hardware configuration. While not Java-specific, this data helps Oracle identify machines and cross-reference with licensing models. For the employee-based subscription model, CPU data is less relevant, but Oracle may check for commercial features like Java Mission Control or Flight Recorder, which historically indicated use of Oracle Java Advanced features under older licensing terms.

Step 4: Output Generation

+

The output is typically a set of text or CSV files. One file might list all Java versions found on each host. Another might summarize installation counts by version and vendor. Oracle's analysts load this data into their internal reporting tools to determine what requires licensing.

The output files are meant to be returned to Oracle via a secure audit portal. However — and this is critical — you should always review the output before sending it to Oracle. The raw data is your environment's information, and you have every right to verify its accuracy before submission. Our Java Advisory team analyzes script output for misidentifications and over-detections before any data reaches Oracle.

⚠️ Important — Scripts Are Continually Updated

Oracle updates these scripts regularly (typically twice per year) to account for new Java versions and licensing rule changes. For instance, after Java 17's release with different licensing terms, the script was updated to detect Java 17+ installations. If you're presented with an older script version, it might erroneously flag installations that are no longer compliance issues under current rules. Always confirm you're running the most current version and document which version was used.

3. What Data Oracle Collects and Why

Understanding exactly what data the scripts collect — and what Oracle does with each data point — gives you control over the audit narrative.

Data PointHow CollectedWhy Oracle Wants It
Java version & update leveljava -version outputDetermines if the version requires a paid subscription (e.g., Oracle JDK 8u202+ requires license)
Vendor identificationVersion string analysis (HotSpot vs. OpenJDK)Distinguishes Oracle Java from free alternatives — only Oracle builds trigger compliance claims
Installation pathFile system scan, registryIdentifies how many distinct installations exist, including forgotten or bundled copies
Server hostnameSystem command (hostname)Maps Java installations to specific machines for cross-referencing with infrastructure data
CPU / hardware infoSystem commands, /proc/cpuinfoRelevant for older per-processor metrics; less critical under employee model but still collected
Operating systemSystem identificationPlatform context for accurate reporting and potential cross-product audit expansion
Running Java processesProcess listing (ps, tasklist)May indicate active use vs. dormant installation — strengthens Oracle's compliance argument
Commercial featuresPresence of Mission Control, Flight Recorder filesUnder older licensing terms, these features required separate licensing; still flagged for completeness
⚠️ Critical Alert — Over-Detection Risk

Scripts can and do overdetect or misclassify Java installations. Common examples include: flagging AdoptOpenJDK or Eclipse Temurin as Oracle Java; counting multiple entries for the same physical installation; detecting Java bundled with Oracle WebLogic or Oracle Database (which may carry different licensing rights); and finding old, unused Java versions on decommissioned-but-not-wiped systems. Never accept Oracle's script output at face value. Always review and validate results before submission. See our Java Compliance Assessment for expert analysis.

4. Oracle's Motives and Use of Script Data

Why does Oracle insist on running scripts? Because the data gives them a high-resolution view of your Java usage that you may not even be aware of. The scripts are Oracle's primary discovery mechanism for identifying what they call "compliance gaps" — areas where you're using more Oracle software than your entitlements cover.

How Oracle Builds the Compliance Claim

Oracle's auditors follow a predictable pattern with script data:

Typical Oracle Audit Claim Construction

1. Discovery: "We found 120 installations of Oracle Java across 80 servers."

2. Entitlement check: "You have zero active Java SE subscriptions."

3. Employee-model application: "Under the Java SE Universal Subscription, your 5,000 employees require licensing."

4. Back-fee calculation: "You owe subscriptions for all employees for the past 2 years = $1.8M in back fees plus ongoing subscription costs."

5. Resolution pitch: "However, if you sign a 3-year subscription now, we can discuss a resolution."

The scripts tilt the playing field in Oracle's favor: they know exactly what to look for and where, whereas many customers are caught off guard by how much Oracle Java is discovered. One common scenario is Java found in places the customer didn't expect — bundled with an application server, embedded in a third-party product, or left on a retired system that was never properly decommissioned.

Expert Insight

Oracle's standard audit clauses now explicitly require customers to run Oracle's data measurement tools and provide the results. In practice, this means if you're formally audited, you will be asked (or contractually required) to run the LMS Collection Tool. This is why proactive self-assessment before an audit arrives is so valuable — you get the same data Oracle would, but with time to remediate issues before Oracle sees them. Organizations that have already migrated to OpenJDK and cleaned up legacy installations face far less exposure when audit scripts run.

📋 Don't let Oracle build the narrative. Our team reviews script output, identifies misclassifications, and builds your defense position before you respond.

Java Advisory →

5. Best Practices for Handling Audit Script Requests

If Oracle requests that you run their audit scripts — whether during a formal audit or a soft audit — here are the best practices for protecting your organization:

1. Negotiate Scope in Writing Before Running Anything

+

Before executing any script, ensure you have a written agreement with Oracle on scope. Specify which systems the script will run on. You typically want to limit it to only those systems reasonably expected to have Java — not a blanket "run everywhere" sweep. Oracle will push for all servers, but you can negotiate. For example: run on all servers and a representative sample of desktops, but exclude network devices or systems confirmed to be Java-free.

Also clarify the timeframe: the script runs once, data is collected, and that's it. No ongoing access. And ensure an NDA is in place so Oracle cannot use data outside the audit scope — particularly for sales lead generation within other Oracle divisions.

2. Review the Script Code Internally Before Execution

+

Ask Oracle to provide the script files in advance — ideally human-readable shell scripts, not opaque binaries. Have your IT security team and system administrators review the code to confirm it's safe (no deletion commands, no external data transmission, no modification of system settings). This review sometimes also reveals exactly what Oracle is looking for — if you see the script searching certain paths, you know where Oracle thinks Java might be located.

If Oracle provides a binary-only tool, request documentation of what it does. You have the right to understand what runs in your production environment.

3. Run in a Test Environment First

+

If feasible, run the scripts on a test system or representative subset of servers first. This accomplishes two things: it ensures the scripts don't disrupt production operations (while typically lightweight, scripts can briefly spike CPU when scanning large file systems), and it gives you a preview of findings before running on your full estate. If the test reveals unexpected Java installations, you have time to investigate and potentially remediate before the full scan.

4. Monitor and Supervise Execution

+

When running in production, supervise the process directly. Run during a maintenance window if possible. Follow Oracle's instructions precisely so they can't claim the scan was performed incorrectly, but don't use the most invasive options if Oracle provides alternatives. For example, if the script offers options to scan specific directories only, use those options rather than allowing an unrestricted full-disk scan.

Ensure your team runs the script — never allow Oracle personnel direct access to your systems. Oracle depends on your IT staff to execute the scripts and return the output.

5. Capture, Review, and Validate All Output Before Submission

+

After running the scripts, you will have output files (logs, CSVs, etc.). Secure copies for yourself immediately. Do not send anything to Oracle without thorough review. This is your environment's data — you have every right to see it first.

Go through the results carefully, ideally with an independent licensing expert. Look for:

Misidentifications: OpenJDK flagged as Oracle Java (AdoptOpenJDK, Eclipse Temurin, Amazon Corretto, etc.)
Duplicates: Multiple entries for the same physical installation
Bundled Java: Oracle Java embedded with Oracle Database or WebLogic — which may carry different licensing rights
Decommissioned systems: Old Java on retired servers that were never cleaned up
Development/test instances: Non-production Java that may have different licensing implications

Proactively correct misidentifications before responding to Oracle: "We reviewed the data and noted that 15 entries are non-Oracle Java distributions; here are the details…"

6. Limit Data to the Agreed Scope

+

Provide Oracle only with the requested data and nothing more. If the script collects broad information by default (e.g., a list of all installed software on the server — the LMS tools sometimes conduct broad sweeps), filter the output and only provide Java-specific information. There is no need to hand over unrelated software inventory data that could prompt questions beyond Java's scope or trigger additional audit inquiries for other Oracle products.

If Oracle insists on raw, unfiltered output, ensure the audit NDA explicitly prevents Oracle from using any data outside the agreed audit scope.

⚠️ Formal vs. Soft Audits — Know Your Obligations

In a formal audit, your Oracle contract likely requires you to cooperate with Oracle's data collection tools. You may not be able to refuse to run the scripts entirely, but you can negotiate scope, timing, and review procedures. In a soft audit (informal review or "license health check"), you are not obligated to run Oracle's scripts. You can choose to provide your own scan data instead, or decline entirely. Be especially cautious with "free assessment" offers — these are often fishing expeditions that can rapidly escalate to formal audits if any potential gaps are uncovered. Consult your legal counsel on your specific contractual obligations before running any Oracle-provided tools.

6. Alternatives: Proactive Self-Assessment

One powerful strategy is to run Oracle's audit scripts on your own before an audit arrives — or use equivalent third-party tools to conduct an independent self-assessment. Licensing experts can interpret the script output to determine your compliance position, giving you the same data Oracle would get, plus time to remediate.

Run Oracle's Scripts Internally

You can request Oracle's LMS Collection Tool proactively (or obtain it through your Oracle account). Running it internally gives you visibility into what Oracle would find, allowing you to uninstall unlicensed Java, migrate to OpenJDK, or document your compliance position before any audit.

Use Third-Party SAM Tools

Software Asset Management tools from vendors like Flexera, Snow, and Certero now include specific Oracle Java discovery capabilities. Some (like Certero) are Oracle LMS/GLAS-verified, meaning Oracle's audit team can accept their data during official audits. This provides continuous visibility without needing Oracle's scripts.

Engage Independent Experts

Our Java Compliance Assessment service runs comprehensive discovery, interprets results against current licensing rules, and provides a detailed compliance report with remediation recommendations — all before Oracle contacts you.

Build Continuous Monitoring

Rather than one-time scans, implement ongoing Java monitoring. Include Java version checks in your configuration management (Ansible, Puppet, SCCM) and establish alerts when new Oracle Java installations appear. This prevents "shadow Java" from accumulating unnoticed.

Proactive Assessment — Real-World Outcome

A 3,000-employee manufacturing company engaged our Java Compliance Assessment service proactively. Running discovery scripts internally, we found 87 Oracle Java installations across 54 servers. Upon analysis: 23 were misidentified OpenJDK builds, 18 were Java bundled with Oracle Database (covered under existing database licenses), 31 were obsolete installations on decommissioned workloads, and only 15 required remediation — which was accomplished by migrating to Eclipse Temurin within 4 weeks. When Oracle's soft audit inquiry arrived 3 months later, the company confidently responded with a clean environment and documented compliance position. Potential exposure avoided: $540,000/year in subscription costs.

7. 2026 Context: Escalating Java Enforcement

Java audit script handling has become more critical than ever in 2025–2026. Oracle's Java enforcement has intensified dramatically, driven by the transition to the employee-based licensing model and Oracle's focus on Java as a major revenue stream.

Employee-Based Model Amplifies Script Impact

+

Under the Java SE Universal Subscription (introduced January 2023), Oracle charges based on total employee count — not the number of Java installations. This means even a single Oracle Java installation found by audit scripts triggers licensing obligations for your entire workforce. A company with 5,000 employees would owe approximately $900,000 per year (5,000 × $15 × 12) regardless of whether 1 or 1,000 servers have Java. This makes script results far more consequential than under the previous per-processor or Named User Plus models.

Key implication: Removing or replacing every Oracle Java installation before an audit runs is the most effective defense. Even one missed installation on a forgotten server can trigger organization-wide licensing. Our Java Advisory clients prioritize comprehensive cleanup before any Oracle engagement.

Audit Volume Increasing — 1 in 5 Predicted by 2026

+

Industry analysts predict that at least 20% of organizations using Java will face an Oracle audit by 2026. Oracle has dramatically ramped up both formal audits (via GLAS/LMS with full script deployment) and soft audits (via sales teams offering "Java usage reviews"). The line between a friendly license discussion and a formal audit has blurred — every Oracle inquiry about Java is effectively a pre-audit signal.

Oracle also increasingly uses third-party partners via its Joint Partner Engagement program, particularly in EMEA and APAC regions. These partners are typically Oracle resellers who earn commissions on any licenses you must purchase — creating a conflict of interest that CIOs should be aware of.

Scripts Now Cover Java 17+ and Modern Distributions

+

Oracle's latest Collection Tool versions have been updated to detect Java 17, 21, and subsequent LTS releases, each of which has different licensing implications. Java 17 was released under a modified license that permitted free use in production until the next LTS (Java 21), after which it reverted to requiring a subscription. Java 21+ is free under the Oracle No-Fee Terms and Conditions (NFTC) license for the current release, but organizations on older versions may still face exposure.

The scripts now also better distinguish between Oracle GraalVM (commercial), Oracle JDK, and Oracle OpenJDK builds — each with different licensing status. Understanding these distinctions is essential for interpreting script results accurately. Consult our Java licensing changes guide for the latest model details.

🚨 Java is now Oracle's top audit focus area. Don't wait for the inquiry — assess your exposure proactively.

Java Compliance Assessment →

8. Recommendations

✅ Java Audit Script Action Plan

🛡️

Java Audit Defense

🔍

Java Compliance Assessment

📋

Java Advisory Services

⚖️

Oracle Audit Defense

Frequently Asked Questions

Am I legally required to run Oracle's audit scripts?+
In a formal audit, most Oracle contracts include clauses granting Oracle the right to audit and typically requiring cooperation with their data measurement tools. You may not be able to refuse entirely, but you can negotiate the scope, timing, and review procedures. In an informal/soft audit, you have no obligation to run Oracle's scripts. You can provide your own scan data, suggest using third-party SAM tools instead, or decline to participate. Always have legal counsel review your specific contract language before responding to any script request.
Can Oracle's scripts harm my production systems?+
Oracle's scripts are designed as read-only diagnostics that should not modify your systems. However, they can cause brief CPU spikes during file system scanning, particularly on servers with large directory structures. They also require elevated privileges (root/admin access) to run effectively. Best practice is to run in a test environment first, schedule execution during maintenance windows, and have your security team review the script code before execution. While incidents of production impact are rare, you should always err on the side of caution with any third-party tool in production.
What if the script misidentifies OpenJDK as Oracle Java?+
This is a common issue. If you find misidentifications, gather evidence (e.g., the full java -version output showing "OpenJDK Runtime Environment") and proactively correct the data before submitting to Oracle. Respond with specifics: "We reviewed the data and noted that entries #12, #23, and #41 are Eclipse Temurin (OpenJDK) distributions, not Oracle Java — here is the documentation." This forces Oracle to accept your corrections. Our Java Compliance Assessment specifically audits for misidentifications before any data reaches Oracle.
Should I run Oracle's scripts proactively (before an audit)?+
Yes — this is one of the most effective audit defense strategies. Running the scripts internally gives you the same data Oracle would collect, but with time to remediate before Oracle sees any results. If the scan finds Oracle Java on 50 servers you don't need, you can uninstall it or replace it with OpenJDK and document the cleanup. When an audit eventually arrives, you present a clean environment. Some organizations use Oracle-verified third-party SAM tools for continuous monitoring, which provides the same visibility without needing Oracle's specific scripts.
How does the employee-based model affect script results?+
Under Oracle's Java SE Universal Subscription, even a single Oracle Java installation triggers licensing obligations based on your total employee count — not the number of installations. So while the script might find 5 installations or 500, the licensing cost is the same: total employees × $15/month. This makes comprehensive cleanup critical: removing every Oracle Java instance is the only way to avoid the employee-count trap. Conversely, if you do need Oracle Java for legitimate reasons, the employee model means you might as well use it everywhere (since you're paying for everyone regardless).
What about Java bundled with other Oracle products?+
Java that came embedded with Oracle Database, WebLogic Server, or other Oracle middleware may carry different licensing rights under those products' licenses. For example, the JDK included with Oracle Database is typically covered by your database license for database-related use. Scripts may flag these as separate "Oracle Java installations" when they are actually already licensed. This is a key area where expert analysis matters — our Java Advisory team identifies bundled Java instances and ensures Oracle doesn't double-count them in compliance claims.

Don't Face Oracle's Java Audit Scripts Alone

Our Java audit defense experts have reviewed hundreds of LMS script packages. We know what Oracle looks for, where scripts overdetect, and how to protect your organization.

Related Resources

FF

Fredrik Filipsson

Co-Founder, Redress Compliance

Fredrik Filipsson brings over 20 years of experience in enterprise software licensing, including direct roles at IBM, SAP, and Oracle. As co-founder of Redress Compliance, he has helped hundreds of Fortune 500 organizations navigate Oracle audits, optimize Java licensing, and secure favorable terms with major software vendors.

📚 Continue exploring:
📖 Read our Oracle Java Audit guide🏠 Back to Oracle Knowledge Hub