Now openThe whole vendor lifecycle in one workspace. Benchmarking, negotiations, contracts, invoices, renewals. Free 30 day trial, no card.Start the trial →
Now openThe whole vendor lifecycle in one workspace. Benchmarking, negotiations, contracts, invoices, renewals. Free 30 day trial, no card.Start the trial →
Advisor reviewing a licensing strategy document on a laptop
Oracle Java · Managed Cloud Runtimes · Buyer Guide

Managed Java Runtimes on AWS, Azure, and GCP: Who Owns the License Risk?

The provider-shipped Java runtimes on the big three clouds are OpenJDK builds under GPLv2 with Classpath Exception, so they carry no Oracle fee. The exposure moves to what you bring, what your ISVs bundle, and the handful of services where you still pick the runtime yourself.

Contact Us Oracle Hub
500+Enterprise clients
$2B+Under advisory
Industry Recognized
500+ Enterprise Clients
$2B+ Under Advisory
11 Vendor Practices
100% Buyer Side Independent

The provider-shipped Java runtimes on the big three clouds are OpenJDK builds under GPLv2 with Classpath Exception, so they carry no Oracle fee. The exposure moves to what you bring, what your ISVs bundle, and the handful of services where you still pick the runtime yourself.

The question buyers keep asking is whether running Java on a hyperscaler's managed service quietly hands them an Oracle Java SE Universal Subscription liability. The short answer: no, not from the provider's own runtime. AWS, Microsoft, and Google all ship OpenJDK builds licensed under GPLv2 with the Classpath Exception, which means zero per-employee fee to Oracle. The longer answer is where money and audit exposure actually live: in the workloads you bring yourself, in the private JREs your third-party software drags along, and in the specific services where the provider hands the runtime decision back to you. This is a provider-by-provider analysis, not a distribution beauty contest. For the distribution mechanics, see our Corretto versus OpenJDK comparison.

The Cost You Are Trying to Avoid

Understand the scale of what a mistake costs before deciding whether the cloud shields you. Oracle's Java SE Universal Subscription is priced per employee, not per install and not per server. List pricing starts at $15 per employee per month for 1 to 999 employees, drops to $12 for 1,000 to 2,999, $10.50 for 3,000 to 9,999, and reaches as low as $5.25 per month for organizations above 50,000 employees. The metric is linear with headcount, not with usage. A 25,000-person firm running the same Java footprint as a 5,000-person firm still pays roughly five times as much.

The definition of "employee" is the trap. Oracle counts all full-time, part-time, and temporary employees, plus all full-time, part-time, and temporary employees of your agents, contractors, outsourcers, and consultants that support your internal business operations. Oracle's own price list example: a company with 28,000 total counted employees (23,000 staff plus 5,000 contractors) pays 28,000 times $6.75 times 12, or $2,268,000 per year. That is the number a single unlicensed Oracle JDK install can put in play, because Oracle prices the whole organization once you are non-compliant anywhere.

One unlicensed Oracle JDK on a managed service can trigger a per-employee bill sized to your entire workforce, not to the workload.

AWS: Corretto Is a Genuine Shield

Amazon Corretto is a GPLv2-with-Classpath-Exception build of OpenJDK with Amazon-provided long-term support and patches, TCK-certified against the Java SE standard. On AWS-managed services, Corretto is the default and it carries no Oracle obligation. The July 22, 2026 quarterly release shipped Corretto 26.0.2, 25.0.4, 21.0.12, 17.0.20, 11.0.32, and 8u502, which tells you the patch cadence is current and maintained.

The LTS windows matter for planning. Amazon extended Corretto 8 support to May 2026 and Corretto 11 to September 2027, with Corretto 17 supported until September 2028. Two operational notes for 2026: JavaFX binaries are no longer included with Corretto 8 from the July 2026 release, so any app depending on bundled JavaFX needs a remediation plan; and Corretto 8 support has now lapsed, so estates still on 8 need to move. Where AWS runs Corretto for you (Lambda's default runtime, managed images), the license risk is Amazon's problem. Where AWS lets you bring your own runtime on EC2, EKS, or ECS, the risk is entirely yours. See serverless Java and Oracle subscriptions for the Lambda specifics.

Azure: The Default-Runtime Rule Decides Who Owns Risk

Microsoft draws a cleaner line than most buyers realize. On a defined set of managed services, Microsoft builds, supports, and deploys the runtime by default, and the Oracle risk sits with Microsoft, not you. That list includes Azure App Service on Windows and Linux, Azure Functions, Azure Spring Apps, Azure Service Fabric, Azure HDInsight, Azure Cognitive Search, Azure Cloud Shell, Azure DevOps, Azure Managed Instance for Apache Cassandra, and Azure Cosmos DB for Apache Cassandra. On everything else (Virtual Machines, AKS, ACI, ACA, Azure Red Hat OpenShift, App Service Web App for Containers), the choice of runtime is yours, which means the license risk is yours.

The Microsoft Build of OpenJDK ships under GPLv2 with Classpath Exception and is patched quarterly in January, April, July, and October. Two Azure-specific traps: first, Java 8 is not Microsoft's own build. For the limited services offering Java 8, Microsoft relies on Eclipse Temurin, and Microsoft does not provide commercial support for non-LTS releases. Second, if you pinned an app to an earlier minor version, you may be silently running the deprecated Azul Zulu for Azure binaries. You can keep using them, but security patches flow only to newer OpenJDK builds. Pinned versions are a stale-runtime risk, not an Oracle-license risk, but they matter for audit-defensible patching hygiene.

Provider Default managed runtime License Where risk returns to you
AWSAmazon CorrettoGPLv2 + CPEEC2, EKS, ECS, any BYO runtime
Azure (managed list)Microsoft Build of OpenJDK (Temurin for Java 8)GPLv2 + CPEVMs, AKS, ACI, ACA, ARO, Web App for Containers
GCP App Engine standardGoogle-maintained OpenJDK 17/21GPLv2 + CPEGCE, GKE, any BYO runtime
GCP (general recommendation)Eclipse TemurinGPLv2 + CPEAnything you build and deploy yourself

GCP: Temurin by Recommendation, OpenJDK on App Engine

Google is the least prescriptive of the three but no less safe on license. Eclipse Temurin is Google's recommended OpenJDK distribution for use with Google Cloud: open-source licensed, Java SE TCK-certified, tested for production. On App Engine standard, Google runs your app in a gVisor-secured container on an up-to-date Ubuntu image with a supported openjdk-17-jdk or openjdk-21-jdk runtime, and App Engine maintains the base image and updates the OpenJDK package without requiring you to redeploy. That is Google owning the runtime and the risk. On Compute Engine and GKE, the runtime decision, and therefore the risk, is yours. The pattern across all three clouds is identical: managed and provider-maintained means their problem; bring-your-own means yours.

The rule is the same on all three clouds. Provider-maintained runtime, provider's risk. Bring-your-own, your risk.

Where Oracle JDK Still Creeps In on Managed Services

The shield only covers the provider's runtime. Oracle Java reappears through four routes, and every one of them lands the liability squarely on you regardless of which cloud you run on.

  • The version line inside Java 8. Oracle Java SE 8u202 and earlier are free for business use; 8u211 and later fall under OTN and My Oracle Support terms and carry the per-employee subscription. Same installer, different obligation. Any managed image or container that pulled an Oracle 8u211+ or Oracle JDK 11 binary is exposed.
  • Bring-your-own Oracle JDK. If your golden AMI, container base image, or Terraform-provisioned VM installs Oracle JDK, the cloud provider's OpenJDK offering does nothing for you. See BYO Oracle Java versus the provider's OpenJDK for the full decision.
  • ISV-bundled private JREs. Third-party desktop and server applications ship private JREs inside their own directories, absent from installed-programs lists and invisible to registry-based discovery. Finding them needs filesystem-level scanning for the actual runtime binaries. In our engagements, 15 to 35 percent of assumed-clean devices turned out to carry an unlicensed or ambiguously-licensed Java. This is the same problem inside container images, covered in Oracle Java in Docker base images.
  • jlink does not launder the license. A jlink-built custom runtime derived from an Oracle JDK is still Oracle Java. The tool changes the packaging, not the license on the bits.

The ISV question is genuinely unsettled and it is where buyers most often pay twice. You must confirm with each application vendor whether their license covers the bundled Java. Some vendors are now stripping Java from their installers and requiring you to download and license the JDK separately; others are switching their bundle to OpenJDK. Without clear written confirmation, you risk either paying Oracle for coverage you already have via the ISV, or facing a compliance finding during an audit for a runtime you assumed was covered. Get the answer in writing per vendor, and keep it in your audit file.

The Autoscaling and Processor-Cap Angle

Even when you are correctly running provider OpenJDK, one legacy Oracle assumption can still bite. Buyers who negotiated an older Oracle Java processor-based agreement, rather than the current employee metric, need to watch elastic workloads. Autoscaling Java fleets can breach the 50,000-processor cap that some legacy structures assume, and cloud burst capacity is exactly where that happens silently. If any part of your estate still runs a legacy Oracle Java metric, read how autoscaling can blow past the 50,000-processor cap before you let a managed Kubernetes cluster scale unbounded.

A related nuance: running Java on Oracle's own cloud does not automatically neutralize your subscription position the way some Oracle sellers imply. If OCI is in your mix, confirm what it does and does not change in does running Java on OCI change your subscription position.

What You Should Do

Treat the provider runtime as safe and spend your effort on the four creep-in routes. In priority order:

  • Inventory the runtime, not the service. Run filesystem-level scanning across AMIs, container images, and BYO VMs for actual java binaries and check the vendor string. Do not trust installed-programs lists or the fact that a service is "managed."
  • Pin your managed services to provider defaults. On Azure especially, unpin apps stuck on deprecated Azul Zulu for Azure binaries and move them onto the Microsoft Build of OpenJDK or Temurin. On AWS, standardize on Corretto LTS. On GCP, standardize on Temurin or App Engine's maintained OpenJDK.
  • Get ISV Java coverage in writing. For every application that bundles a JRE, obtain a written statement of whether that Java is licensed by the vendor. File it. This single step closes the most common audit finding.
  • Migrate BYO Oracle JDK off the estate. Replace Oracle JDK in golden images with the matching provider OpenJDK before renewal. Our cloud image pipeline migration guide covers the swap, and the pillar view sits at Oracle Java in cloud, containers, and Kubernetes.
  • Score your exposure. If you want a structured read on where you stand, our Java license risk score interpretation maps each band to audit exposure and a 90-day plan.

The reassuring conclusion is that the hyperscalers have already solved the runtime license problem for you at the platform layer. The uncomfortable one is that Oracle's per-employee metric turns any residual Oracle JDK, anywhere, into a whole-organization bill. Managed services shift the runtime risk to the provider on the services they maintain. Everything you bring, everything your ISVs bring, and every legacy metric you still hold remains yours to prove clean.

Frequently asked questions

Does using Amazon Corretto avoid Oracle Java fees?

Yes. Corretto is a GPLv2-with-Classpath-Exception build of OpenJDK with Amazon support and no Oracle subscription requirement. The only way Oracle fees return on AWS is if you bring your own Oracle JDK, or if a third-party application bundles an Oracle-licensed private JRE. Note that Corretto 8 support has now lapsed and JavaFX left Corretto 8 in the July 2026 release.

Which Azure services make Microsoft responsible for the Java runtime?

On Azure App Service (Windows and Linux), Azure Functions, Azure Spring Apps, Service Fabric, HDInsight, Cognitive Search, Cloud Shell, DevOps, Managed Instance for Apache Cassandra, and Cosmos DB for Apache Cassandra, Microsoft builds and maintains the runtime by default. On VMs, AKS, ACI, ACA, Azure Red Hat OpenShift, and Web App for Containers you choose the runtime, so the license risk is yours.

Is the Java runtime on GCP App Engine an Oracle license risk?

No. App Engine standard runs a Google-maintained OpenJDK 17 or 21 runtime and updates the base image without redeployment, all under open-source license. Google's general recommendation across Google Cloud is Eclipse Temurin, which is also TCK-certified and carries no Oracle fee. On Compute Engine and GKE the runtime choice, and the risk, returns to you.

Where does Oracle JDK still creep into a managed cloud service?

Four routes: an Oracle 8u211+ or Oracle JDK 11 binary baked into a golden image, a bring-your-own Oracle JDK you installed, a private JRE bundled inside a third-party application, and a jlink-built runtime derived from an Oracle JDK. All four leave the liability with you regardless of provider, and bundled JREs are often invisible to registry-based scanning.

If my software vendor bundles Java, do I need my own Oracle subscription?

It depends on the vendor's license, and it is genuinely unsettled. Some ISVs cover the bundled Java under their own agreement, some now strip it out and require you to license a JDK separately, and some ship OpenJDK. Get a written statement per vendor. Without it you risk paying Oracle twice or failing an audit for a runtime you assumed was covered.

Does running Java on managed Kubernetes trigger Oracle's processor cap?

Only if you still hold a legacy Oracle Java processor-based agreement. Autoscaling clusters on AKS, EKS, or GKE can breach an assumed 50,000-processor cap during burst events, silently. If you are on the current employee-based metric the cap is not your issue, but any legacy processor structure combined with elastic scaling needs monitoring.

Free White Paper

Oracle Cloud at Customer Licensing. The buyer side framework.

Oracle Cloud at Customer enterprise licensing framework. Buyer side framework across OCI Dedicated Region, Exadata Cloud at Customer, autonomous database.

Gated with a work email on the download page. No sales follow up you did not ask for.

Get the White Paper →
Independent, buyer side. We never share your details with vendors.
Run a software spend health check against your Oracle Java estate in under five minutes.
Open the Tool →
Deep Library

More on this topic.

Oracle Hub →
Oracle Java in Cloud, Containers, and Kubernetes: The 2026 Licensing Reality
Oracle Java · Guide
Oracle Java in Cloud, Containers, and Kubernetes: The 2026 Licensing Reality
The full guide this article belongs to.
Guide
Is Oracle Java in Your Docker Base Images a Licensing Problem?
Oracle Java · Deep dive
Is Oracle Java in Your Docker Base Images a Licensing Problem?
Another angle on the same decision.
Guide
How Autoscaling Java Workloads Can Blow Past the 50,000-Processor Cap
Oracle Java · Deep dive
How Autoscaling Java Workloads Can Blow Past the 50,000-Processor Cap
Another angle on the same decision.
Guide
Move IBM workloads to cloud without license risk
Oracle Java
Move IBM workloads to cloud without license risk
How to move IBM workloads to public cloud without a license surprise: Cloud Pak math, PVU
Guide
Your Oracle Java license risk score, interpreted.
Oracle Java
Your Oracle Java license risk score, interpreted.
Interpret your Oracle Java SE Universal Subscription risk score. Buyer side reference on e
Guide
Oracle Cloud at Customer, ten steps, two license traps.
Oracle Java
Oracle Cloud at Customer, ten steps, two license traps.
Migrating to Oracle Cloud at Customer takes ten steps, from entitlement baseline to cutove
Guide
Editorial boardroom interior

The advisor your vendors do not want.

500+ enterprise clients. 11 vendor practices. Industry recognized. One conversation can change what you pay for the next three years.

Stay ahead of Oracle licensing changes.

One buyer side briefing a week. Renewal signals, audit moves, and the levers that work. No vendor spin.