How to Prepare for an Oracle Java License Agreement Expiration
Oracle Java subscriptions must be managed proactively. If your agreement is ending soon, start planning immediately. First, set a timeline.
Find the exact expiration date in your contract. Mark it on a shared calendar. Include buffer time to gather data and make decisions.
Read Is Your Java License Agreement Expiring? 10 Things You Must Know.
Early Discovery Steps
Identify all Java products in use. Check both servers and desktops. Teams often use Java in hidden ways, such as embedded in middleware or internal tools. Use a mix of manual checks and tools:
- Search file systems: Look for common Java binaries (
java.exe
,java
,jvm.dll
, etc.) on servers and workstations. - Environment paths: Query PATH variables for Java installation paths.
- Inventory tools: Use SCCM, JAMF, or similar tools to list installed software packages containing Java.
- Version and vendor: Record each Java instanceโs version and vendor (Oracle, OpenJDK, Azul, etc.) and note who uses it.
Create a spreadsheet of your findings. For example:
Machine | Java Version | Vendor | Use Case |
---|---|---|---|
srv-db01 | 1.8.0_351 | Oracle | Accounting App |
dev-laptop-12 | 17.0.7 | OpenJDK | Build agent |
This inventory highlights potential licensing needs. You will need to act if you find more Oracle Java installations than you have licenses for.
Perform an Internal Audit
Audit your license entitlements. Review contracts and purchase records:
- Check current licenses: Look up Java SE subscriptions or maintenance agreements in your contract repository.
- Count licenses: Note if past agreements used Named User Plus (NUP) or per-processor metrics. For example, an old contract might list “100 NUP Java SE” or “2 CPU licenses.”
- Employee count: If you have a Java subscription, count all employees (full-time, part-time, contractors). Under Oracleโs current model, you pay per employee. For example, 500 employees at $15/employee/month is a $90,000/year cost.
- Identify gaps: Compare your Java inventory to the licenses you hold. Any excess usage is a compliance issue.
If you find more Oracle Java usage than licenses, plan how to close the gap. Options include removing Oracle Java from some systems, negotiating more licenses, or moving some workloads to free alternatives (see our migration guide).
Use the Right Tools
Leverage software asset management (SAM) and discovery tools. These can speed up audits and find hidden instances:
- Oracle LMS scripts: Oracle provides free scripts to scan networks for installed products, including Java. Use them to find untracked installations.
- Third-party scanners: Tools like Snow Software or Flexera can inventory installations across your environment. Set them to identify Java runtimes.
- Log analysis: Check your network logs. For example, Oracleโs download site records can show who downloaded Oracle Java.
- Container scans: If you use Docker or Kubernetes, scan images and containers for Java components.
Such tools catch instances missed by manual checks. For example, a thorough scan might uncover a forgotten test VM or CI/CD pipeline image. Document everything you find.
Engage Stakeholders
Coordinate with all teams using Java:
- Development: Developers know which Java versions their apps need and which features are in use.
- Operations: Ops teams manage servers and cloud instances with Java. They can run scans and interpret results.
- Security: The security team cares about patching Java. They often have data on which versions have known vulnerabilities.
- Procurement/Finance: They handle budgets and contracts. Keep them informed of timelines and costs.
- Legal/Compliance: They ensure plans meet regulatory and contractual obligations.
Hold a kickoff meeting. Share your audit results and discuss next steps. Align on goals like minimizing cost or avoiding risk. If some teams prefer open-source Java, note that plan. If not, prepare to meet with Oracle for renewal options.
Establish Governance
Create a project plan and team to manage the process. Assign roles and responsibilities:
- Project Lead: Coordinates tasks and timeline.
- Technical Lead: Understands Java deployments and dependencies.
- Finance Lead: Tracks budgets and contract details.
- Compliance Advisor: Checks legal and licensing issues.
Set milestones and track progress. Example timeline:
Phase | Timeline | Milestone |
---|---|---|
Discovery & Audit | Month 1 – 2 | Complete Java inventory and license audit |
Decision Point | Month 3 | Decide: Renew vs. Migrate |
Pilot (if migrate) | Month 4 – 5 | Test OpenJDK on development servers |
Negotiation (renew) | Month 4 – 5 | Obtain quotes from Oracle |
Final Prep | Month 6 | Ready for cutover or contract renewal |
Deadline | Month 6 | Java license expires |
Keep a shared document or dashboard updated. Report status to leadership regularly.
Real-World Example
Acme Corp discovered during an internal audit that they had Oracle Java on 120 servers but licenses for only 50 users. They risked heavy penalties. Finding this early, they removed Oracle Java from unused machines and planned to migrate the rest to Eclipse Temurin (a free OpenJDK build). They also engaged Oracle in advance to discuss extending coverage until migration was done.
Practical Advice
- Hidden installs: Check for Java in places like build agents and test servers, not just live production servers.
- Version needs: Identify if any apps require a specific Java version (e.g., Java 8 vs. Java 17).
- Patch policy: Know that you will not get Oracle security patches without a subscription after the license expires.
- Hybrid approach: You may renew Oracle Java for critical workloads and migrate others to reduce cost.
- Document actions: Keep detailed records of your inventory and decisions. This documentation shows due diligence if Oracle asks questions.
See Also
- 5 Challenges Youโll Face When Your Oracle Java Subscription Ends
- How to Migrate from Oracle Java to OpenJDK: A Practical Guide
- What to Do If Oracle Starts a Java Audit After Expiration
- Should You Renew Your Oracle Java Agreement? A Cost-Benefit Analysis
Recommendations
- Start early: Begin Java usage scans at least 6 months before the contract ends.
- Inventory vs. licenses: Cross-check your inventory with all active Java licenses and contracts.
- Set clear roles: Form a project team with technical, SAM, and legal leads.
- Test alternatives: Run a pilot with a free OpenJDK distribution, even if you plan to renew, to see how your apps behave.
- Maintain evidence: Keep all audit reports, spreadsheets, and meeting notes. This documentation is invaluable if Oracle inquires.