Oracle Java on OCI Licensing: What Is Included
Oracle Java SE use on OCI compute is included at no additional licence cost while the JVM runs on OCI infrastructure, under the OCI use rights. That inclusion does not extend to Java running off OCI, on the hyperscalers, or on premise, where the Java SE Universal Subscription and its employee metric still apply in full.
What is included on OCI
Oracle includes Java SE use within the OCI service use rights, so a JVM running on an OCI compute instance does not require a separate Java SE Universal Subscription for that use. This is a genuine and valuable inclusion: workloads that have migrated their compute to OCI can run Oracle's JDK on those instances without paying the per employee Java subscription that would otherwise apply. It is one of the quieter economic advantages of the Oracle OCI licensing model and is frequently overlooked when buyers price a migration.
The inclusion is tied to the infrastructure, not to the organisation. It covers Java as used on OCI; it does not convert your enterprise into a Java subscriber for use anywhere else. That tie to infrastructure is the whole subtlety of Java on OCI, and the rest of this article is about where the line is drawn, because the cost difference between inside and outside that line is the entire Oracle Java licensing question.
Where the boundary sits
The boundary is the OCI infrastructure itself. Java used on OCI compute, OCI managed services, and OCI hosted workloads falls inside the inclusion. Java used anywhere else, on premise servers, developer laptops, AWS or Azure instances, or third party hosted environments, falls outside it and is governed by the Java SE Universal Subscription. The location of the running JVM is what determines which regime applies, instance by instance.
| Where Java runs | Licensing regime | Cost basis |
|---|---|---|
| OCI compute | Included in OCI use rights | No separate Java cost |
| On premise | Universal Subscription | Per employee |
| AWS / Azure / GCP | Universal Subscription | Per employee |
| Developer desktops | Universal Subscription | Per employee |
The table exposes the asymmetry that catches buyers. Moving a Java workload onto OCI removes the Java cost for that workload, but the moment any Java remains in use off OCI, the Universal Subscription is triggered, and that subscription is priced on a metric that has nothing to do with where the workload runs. Understanding that asymmetry is the key to not overpaying.
The Universal Subscription elsewhere
Off OCI, Oracle Java SE is licensed under the Universal Subscription, which since 2023 is priced per employee, not per processor or per user of Java. That means a single Java installation on one on premise server can, in Oracle's model, require a subscription counted across the entire employee population of the organisation. The mechanics and the scope of the employee definition are set out in the Universal Subscription article, and they are the reason Java has become one of the most expensive licensing surprises in the Oracle estate.
The strategic consequence is that the OCI inclusion is only fully valuable if you can eliminate Oracle Java use everywhere else. A migration that moves the production workload to OCI but leaves Oracle JDK on developer machines and a handful of on premise servers does not avoid the Universal Subscription; it still triggers the per employee charge for those residual uses. The saving is realised only when the off OCI footprint reaches zero or moves to a non Oracle distribution.
The employee metric trap
Because the Universal Subscription counts employees rather than installations, the cost of any off OCI Java is effectively fixed regardless of how small that footprint is. One JDK on one laptop and one thousand JDKs across the estate can cost the same, because both are priced on total headcount. This makes partial migrations to OCI economically awkward: you carry the full per employee subscription for the residual use while also paying OCI for the migrated use, capturing the inclusion for only part of the estate.
The clean outcomes are therefore binary. Either consolidate all Oracle Java onto OCI and remove it everywhere else, capturing the inclusion in full and dropping the subscription entirely, or replace Oracle's JDK with a free distribution such as a supported OpenJDK build off OCI while using the inclusion on OCI. Both eliminate the per employee charge; a half measure does not. This is the optimisation the Java licensing practice models for migrating estates.
Hybrid and multicloud estates
Most real estates are hybrid, with Java spread across OCI, other clouds, and on premise. In that setting the OCI inclusion covers only the OCI slice, and every other slice is exposed to the Universal Subscription. A multicloud strategy that runs Java on AWS or Azure compute gains nothing from the OCI inclusion for that compute, because the inclusion is OCI specific and does not travel. Even Oracle Database@Azure or Database@Google Cloud, which are OCI hardware, follow the database inclusion rules rather than extending the general Java inclusion to your application JVMs on those clouds.
The practical mapping exercise is to inventory every JVM by location, classify each as inside or outside the OCI inclusion, and quantify the off OCI footprint that drives the subscription. That inventory is the evidence base for deciding whether to consolidate onto OCI, replace off OCI Oracle JDK with a free build, or accept the subscription. It is the same disciplined inventory the cloud and OCI licensing practice builds for any Java exposed estate.
How to govern Java on OCI
Governance is a short list. Inventory every JVM by where it runs. Confirm which uses fall inside the OCI inclusion and which do not. Quantify the off OCI footprint and the per employee subscription it would trigger. Decide per slice whether to consolidate onto OCI, replace Oracle JDK with a free distribution, or subscribe. And keep a dated record of the decision and the residual footprint, because the per employee metric makes any residual Oracle Java off OCI a full subscription trigger that an audit will find.
The record matters because Java audits, often delivered as a soft outreach rather than a formal LMS engagement, turn precisely on residual off OCI use. A clean, dated inventory showing either zero off OCI Oracle Java or a deliberate, costed subscription is the defensible position. Building it is straightforward; discovering the exposure in an audit is not.
Is Java really free on OCI?
For Java used on OCI infrastructure, yes, in the sense that no separate Java SE Universal Subscription is required for that use; the cost is folded into the OCI service you are already paying for. But it is not free in the wider sense if any Oracle Java remains in use off OCI, because that residual use triggers the per employee subscription regardless of the OCI inclusion. The honest answer is that Java is included on OCI and expensive everywhere else, so the inclusion is only as valuable as your ability to eliminate the off OCI footprint.
Buyers who read the inclusion as a blanket Java entitlement for the whole organisation are the ones who are surprised in an audit. The inclusion is real, valuable, and strictly bounded to OCI, and it should be planned for on exactly those terms.
The buyer side view
Java SE is included on OCI compute and priced per employee everywhere else, so the OCI inclusion is fully valuable only when the off OCI Oracle Java footprint reaches zero. Inventory every JVM by location, capture the inclusion on OCI, and for everything off OCI either consolidate onto OCI or replace Oracle's JDK with a supported free distribution, because a residual JVM anywhere triggers the full per employee subscription. Keep a dated record for audit defence. To map a Java estate against the OCI inclusion and remove the subscription, request a consultation.
Common questions.
Is Oracle Java free on OCI?
Java SE use on OCI compute is included in the OCI service use rights, so no separate Java SE Universal Subscription is required for that use. It is not free for Java used off OCI, where the per employee Universal Subscription applies in full.
Does the OCI Java inclusion cover my whole organisation?
No. The inclusion is tied to OCI infrastructure, not to your organisation. It covers Java as used on OCI compute and managed services only. Any Oracle Java used on premise, on other clouds, or on desktops is governed by the Universal Subscription.
How is Java licensed off OCI?
Off OCI, Oracle Java SE uses the Universal Subscription, priced per employee across the whole organisation since 2023. A single off OCI installation can trigger a subscription counted across total headcount, which is why residual off OCI use is so costly.
Does the OCI inclusion apply on AWS or Azure?
No. The inclusion is OCI specific and does not travel. Java run on AWS, Azure, or Google Cloud compute is subject to the Universal Subscription. Even Database@Azure and Database@Google Cloud follow database inclusion rules, not a general Java inclusion for your application JVMs.
How do I make the OCI Java inclusion worthwhile?
Eliminate Oracle Java use everywhere off OCI, either by consolidating all Java workloads onto OCI or by replacing Oracle's JDK with a supported free distribution off OCI. Because the subscription is per employee, any residual Oracle Java off OCI triggers the full charge.
What triggers a Java audit on a mixed estate?
Residual off OCI Oracle Java use is the main trigger. Oracle often runs Java reviews as soft outreach based on download records. A dated inventory showing zero off OCI Oracle Java, or a deliberate costed subscription, is the defensible position.