Oracle Java SE Universal Subscription bills the entire employee base under the Employee Metric, regardless of who uses Java. Microsoft Build of OpenJDK is Microsoft's no-cost, production-ready OpenJDK distribution — the default Java on Azure App Service for Java, Azure Spring Apps, Azure Functions for Java, and Azure Kubernetes Service. Microsoft Premier Support and Microsoft Unified Support cover Microsoft Build at no incremental cost for existing support contract customers. For Azure-aligned Java estates, Microsoft Build is the buyer-side defensive answer to the Oracle Employee Metric — and the migration is technically a drop-in replacement. This is a buyer-side breakdown of licensing, Azure operational fit, support, performance, and migration mechanics.
Oracle Java SE Universal Subscription. Oracle's commercial Java SE distribution under the Employee Metric model since January 2023. Universal Subscription includes Oracle JDK binaries, Java Management Service (JMS), GraalVM Enterprise Edition, and Oracle's commercial Java support. The Employee Metric counts every employee plus full-time contractors, consultants, and temporary workers — regardless of Java consumption.
Microsoft Build of OpenJDK. Microsoft's free, production-ready, TCK-certified OpenJDK distribution, released in 2021 and consolidated from earlier Microsoft Java investments. Microsoft Build supports Java 11, 17, 21, 23, and onward LTS releases (Microsoft chose not to backport to Java 8 — for Java 8 workloads Microsoft directs customers to Eclipse Temurin or Amazon Corretto, or to upgrade to Java 11+ which is the recommended path). Microsoft Build ships for Linux (x86_64, AArch64), macOS (Intel, AArch64), Windows (x86_64, AArch64), and as Docker images. Microsoft Build is the default Java on Azure App Service for Java, Azure Spring Apps, Azure Functions for Java, and is recommended for Azure Kubernetes Service Java workloads.
Microsoft is one of the largest contributors to OpenJDK upstream. Microsoft engineers maintain OpenJDK ports for Windows AArch64 (ARM64), contribute garbage collector improvements, JIT optimisations, and security patches. Microsoft runs Java workloads at internal scale — LinkedIn, parts of Microsoft 365, Yammer, Bing, parts of Azure — which underwrites the production-grade claim for enterprise customers.
The two products are binary-compatible at the same JDK major version (Java 11+). Code compiled against Oracle JDK 17 runs unmodified on Microsoft Build 17. The JVM behaviour, garbage collectors, JIT compilers, standard library APIs, and tooling are functionally identical because both descend from the same OpenJDK upstream.
Oracle Java SE Universal Subscription pricing (per employee per month, tiered).
| Employee count tier | List PEPM | Annual cost (12k employees) |
|---|---|---|
| 1 to 999 employees | $15.00 | n/a |
| 1,000 to 2,999 employees | $12.00 | n/a |
| 3,000 to 9,999 employees | $10.50 | n/a |
| 10,000 to 19,999 employees | $8.25 | $1,188,000 (12k) |
| 20,000+ employees | $5.25–6.75 tiered | n/a |
Microsoft Build of OpenJDK licensing. GPL v2 with Classpath Exception. Commercial use in production is permitted at no cost, including in enterprise applications, including in shipped commercial products. No Microsoft licence purchase required — Microsoft Build is published as a public good, similar to .NET. Microsoft Premier Support and Microsoft Unified Support coverage of Microsoft Build is included at no incremental cost for existing support contract customers; the support coverage requirement is the existing Microsoft Support contract, not a separate Java licence.
For Azure-hosted Java workloads (Azure App Service for Java, Azure Spring Apps, Azure Functions for Java, Azure Kubernetes Service with Microsoft Build), Microsoft Build is the supported default Java distribution. Azure Standard or Professional Direct Support Plans provide support coverage for these services including the Microsoft Build runtime, at no additional Java-specific cost.
The operational case for Microsoft Build is its native fit with Azure Java services. For Azure-heavy estates, this matters operationally:
For organisations with significant Azure investment — Azure ARC, Azure Sentinel, Microsoft 365 E5, Azure AD / Entra ID, Microsoft Defender for Cloud, Azure Monitor — Microsoft Build of OpenJDK extends the existing Microsoft commercial relationship to cover Java with no additional licence cost. The single-vendor support story for Java + .NET + cloud + identity + security is operationally cleaner than splitting Java support across Oracle while the rest of the stack runs Microsoft.
For non-Azure Java estates, Microsoft Build is still a perfectly fine OpenJDK distribution — but the operational advantages narrow. On AWS, Corretto's native fit is closer. On vendor-neutral or multi-cloud estates, Eclipse Temurin's neutrality is more appealing.
Microsoft Build of OpenJDK patch cadence. Microsoft Build releases security patches and bug fixes on the OpenJDK upstream quarterly cadence — typically within 7 to 14 days of upstream release. Microsoft's Java engineering team contributes to the upstream patches and ensures Microsoft Build incorporates them promptly.
| Patch / support dimension | Oracle Java SE | Microsoft Build of OpenJDK |
|---|---|---|
| Quarterly security patches | Same OpenJDK cadence (CPU) | Same OpenJDK cadence (within 7-14 days) |
| Java 8 support | Through Dec 2030 (extended) | Not provided — use Temurin or Corretto for Java 8 |
| Java 11 LTS support | Through Jan 2032 (extended) | Through Sep 2027 (Microsoft's commitment) |
| Java 17 LTS support | Through Sep 2029 | Through Sep 2027 (Microsoft's commitment, expected to extend) |
| Java 21 LTS support | Through Sep 2031 | Through Sep 2028 (Microsoft's commitment, expected to extend) |
| 24/7 commercial support on Azure | Included (Oracle commercial) | Included via Azure Support Plans (Standard, Professional Direct) |
| 24/7 commercial support off Azure | Included (Oracle commercial) | Microsoft Premier / Unified Support contracts |
| Indemnification | Included (Oracle commercial) | Included for Azure-hosted Microsoft Build |
| TCK certification | Yes (Oracle internal) | Yes (Microsoft TCK-certified) |
| Java Management Service (JMS) | Included | Not included — Azure Monitor + Application Insights for Java telemetry |
Microsoft's published LTS commitment windows are somewhat shorter than Oracle's extended-support windows. Microsoft commits to a defined LTS window aligned to OpenJDK upstream; Oracle commits to longer extended-support windows for paying Universal Subscription customers (e.g., Java 8 through 2030). The practical impact: customers running Microsoft Build on Java 8 should plan an upgrade to Java 11 or 17 within the support window. For Java 11, 17, 21, and beyond, Microsoft's support windows align with normal LTS planning cycles for most enterprises.
For Azure-hosted workloads, Microsoft includes 24/7 support coverage for Microsoft Build through the Azure Support Plan (Standard or Professional Direct). For off-Azure Java workloads, Microsoft Premier Support or Microsoft Unified Support contracts cover Microsoft Build alongside the rest of the Microsoft stack — no separate Java-specific support purchase is required.
Compatibility. Microsoft Build of OpenJDK is binary-compatible with Oracle JDK at the same major version (Java 11+). Java applications, JAR files, WAR files, Spring Boot apps, application server deployments, and JVM tuning parameters that work on Oracle JDK 17 work on Microsoft Build 17 without code or configuration changes. Microsoft Build passes the Technology Compatibility Kit (TCK) for Java SE — TCK certification is independently verified by Microsoft.
Performance. Microsoft Build uses the HotSpot JVM with the standard OpenJDK JIT compilers (C1, C2) and garbage collectors (Serial, Parallel, G1, ZGC, Shenandoah). Microsoft's specific contributions to OpenJDK include Windows AArch64 (ARM64) port optimisations, G1 GC improvements, security hardening, and FFI improvements. Performance benchmarks (SPECjbb, SPECjvm, real-world workloads) show Microsoft Build within ±2 percent of Oracle JDK and Temurin across most scenarios.
Microsoft has invested specifically in two areas where Microsoft Build offers operational advantages: (a) Windows AArch64 ARM64 support — the Microsoft Build is the most polished ARM64 Windows Java distribution for Apple Silicon developer machines running Windows-on-ARM and for Azure ARM-based VMs (Cobalt, Azure Compute Manager); (b) Azure-tuned defaults — Microsoft Build on Azure App Service for Java is tuned by the Azure team for typical container and Spring Boot configurations.
Tooling compatibility. JConsole, VisualVM, Java Mission Control, Java Flight Recorder, jcmd, jstat, jmap, jstack all work on Microsoft Build identically to Oracle JDK. Build tools (Maven, Gradle, Ant), CI/CD platforms (Azure DevOps, GitHub Actions, Jenkins), application servers (Tomcat, Jetty, WildFly, Spring Boot), and APM tools (Application Insights with Java agent, Datadog, New Relic, Dynatrace) support Microsoft Build without modification.
The technical migration from Oracle JDK to Microsoft Build of OpenJDK is straightforward, particularly on Azure where Microsoft Build is the default. For each affected system:
For Azure-heavy estates, a typical migration completes in 3 to 6 weeks — somewhat faster than on-premise or AWS estates because the Azure platform changes are configuration-only rather than infrastructure-level.
Scenario: A 12,000-employee enterprise has been using Oracle JDK across approximately 320 Java applications, with 65 percent of those workloads running on Azure (Azure App Service for Java, Azure Spring Apps, AKS-hosted Spring Boot microservices, Azure Functions for Java). Universal Subscription proposal lands at $8.25 PEPM × 12,000 × 12 = $1,188,000 per year.
| Cost component (3-year horizon) | Oracle Java SE Universal Subscription | Microsoft Build of OpenJDK migration |
|---|---|---|
| Year 1 subscription (12k × $8.25 × 12) | $1,188,000 | $0 (runtime) |
| Year 2 subscription (5% headcount growth) | $1,247,400 | $0 |
| Year 3 subscription (5% headcount growth) | $1,309,770 | $0 |
| 3-year Oracle subscription subtotal | $3,745,170 | — |
| Migration project (one-off) | n/a | $240,000 (4-6 weeks for Azure estate, 6-8 weeks for on-premise) |
| Microsoft Premier / Unified Support coverage for Microsoft Build (off-Azure subset) | Included in Oracle subscription | $0 incremental — covered by existing Microsoft Premier Support |
| Azure Support Plan coverage for on-Azure subset | n/a | $0 incremental — covered by existing Azure Standard Support |
| Optional: Eclipse Temurin or Corretto for Java 8 holdouts (~5% of estate) | n/a | $0 (free runtime) + $80,000 (Azul commercial support for Java 8 regulated workloads, 3 years) |
| 3-year TCO | $3,745,170 | $320,000 |
| 3-year savings | baseline | $3,425,170 (91%) |
For this profile, the 3-year savings from the Microsoft Build migration land at $3.4M. The Azure-aligned migration is faster and cheaper than the average OpenJDK migration because (a) Azure platform changes are configuration-only for App Service, Spring Apps, and Functions, (b) the existing Microsoft Premier Support contract covers Microsoft Build off-Azure at no incremental cost, (c) the existing Azure Support Plan covers Microsoft Build on-Azure at no incremental cost.
The Java 8 holdout subset (typically 5 to 15 percent of Java estates in 2026) is the operational complication for Microsoft Build because Microsoft does not ship Java 8. Three options for the Java 8 subset: (a) upgrade to Java 11 or 17 — the recommended path given Java 8's end-of-public-update status; (b) run Temurin or Corretto for Java 8 with no commercial support; (c) procure Azul Zulu Enterprise commercial support for Java 8 regulated workloads (typically $80k to $200k over 3 years depending on JVM count).
Choose Microsoft Build of OpenJDK when:
Choose another OpenJDK when:
The buyer-side reality: for Azure-heavy estates, Microsoft Build is the default vendor answer. Microsoft has cultivated the Azure Java story specifically to offer Azure customers a no-cost Oracle Java SE alternative that does not require a third-party OpenJDK relationship. For most enterprise Azure customers, Microsoft Build is the right answer — the operational advantages are real and the support relationship is already in place. For non-Azure platforms, the right answer is platform-aligned: Red Hat OpenJDK for RHEL/OpenShift, BellSoft Liberica for JavaFX or Spring Boot-heavy estates, and the model is the same: drop the Employee Metric, exit the Universal Subscription, defend the audit that follows. Bring the modelled ROI to the Java migration ROI calculator to size the buyer-side opportunity.
An anonymised global financial services group with 13,500 employees and a Java estate concentrated on Azure (75 percent of Java workloads on Azure App Service for Java, Azure Spring Apps, AKS-hosted Spring Boot microservices) faced an Oracle Java Universal Subscription proposal at $1.34M per year for the 13,500-employee Employee Metric. The customer already held a Microsoft Premier Support contract covering Azure, Microsoft 365 E5, and Microsoft Defender for Cloud. Buyer-side engagement structured a 5-week Microsoft Build migration: the Azure-hosted workloads switched runtime in 2 weeks (configuration-only on App Service and Spring Apps); the on-premise VM-hosted Java migrated in 3 weeks; the 8 percent Java 8 holdout subset migrated to Java 11 with Microsoft Build for the modern subset and Azul Zulu Enterprise for the regulated Java 8 subset awaiting code-base upgrade. Final outcome: Universal Subscription not renewed; Microsoft Premier Support coverage extended (no incremental cost) to include Microsoft Build off-Azure; Azul Zulu Enterprise procured at $35k/year for the regulated Java 8 subset. 3-year saving versus the Oracle baseline: approximately $3.4M. The Microsoft account team specifically referenced this migration as a model case for displacing Oracle Java in Azure-heavy financial services accounts.
Microsoft Build of OpenJDK is Microsoft's no-cost, production-ready, TCK-certified distribution of OpenJDK. Released in 2021 as part of Microsoft's strategic Java investment, Microsoft Build supports Java 11, 17, 21, 23, and onward LTS releases. The distribution is binary-compatible with Oracle JDK and other OpenJDK builds, ships for Linux (x86_64, AArch64), macOS (Intel, ARM), Windows (x86_64, AArch64), and is available as Docker images and Azure App Service runtime. Microsoft Build is the default Java for Azure App Service for Java and Azure Spring Apps. Microsoft commits to LTS support windows aligned to OpenJDK upstream releases.
Yes. Microsoft Build of OpenJDK is licensed under GPL v2 with Classpath Exception — the standard OpenJDK licence — and is free for commercial production use, including in enterprise applications, including in shipped commercial products. Microsoft Premier Support and Microsoft Unified Support cover Microsoft Build of OpenJDK for Azure customers and existing Microsoft Support contract customers at no incremental cost. There is no separate Java licence, no Oracle Master Agreement, no Employee Metric, no audit exposure.
Microsoft Build of OpenJDK is supported under Microsoft's standard Azure Support Plans (Developer, Standard, Professional Direct) and through Microsoft Premier Support / Unified Support contracts. For Azure-hosted Java workloads (Azure App Service for Java, Azure Spring Apps, Azure Kubernetes Service, Azure Functions for Java, Azure Web Apps), Microsoft Build is the supported default. Microsoft engineers contribute to OpenJDK upstream and operate Java workloads at scale internally (LinkedIn, Bing, Yammer, parts of Microsoft 365), which underwrites the production-grade claim. Microsoft commits LTS support windows aligned to the OpenJDK upstream EA/LTS schedule.
Choose Microsoft Build for Azure-aligned estates where the Java workloads run on Azure App Service, Azure Spring Apps, AKS, or Azure VMs — Microsoft Build is the default Java on those Azure services and Microsoft Premier Support is the natural support relationship. Choose Amazon Corretto for AWS-aligned estates. Choose Eclipse Temurin for vendor-neutral or multi-cloud estates. All three are technically equivalent OpenJDK distributions; the choice is about operational fit and support-relationship alignment. All three eliminate the Oracle Employee Metric — the commercial outcome is the same regardless of which OpenJDK replaces Oracle Java SE.
No. Microsoft Build of OpenJDK is shipped for Java 11, 17, 21, 23 and onward LTS releases. Microsoft chose not to backport Microsoft Build to Java 8, in part because Java 8's mainstream public update period ended in 2019 and continuing to ship Java 8 in 2026 would conflict with the strategic encouragement to upgrade to modern LTS versions. For Java 8 workloads, the choices are: (a) upgrade the application to Java 11 or 17 — the recommended path; (b) use Eclipse Temurin 8 (community-supported quarterly patches through May 2026); (c) use Amazon Corretto 8 (Amazon-supported through May 2026 with quarterly patches); (d) procure commercial Java 8 support from Azul Zulu Enterprise (paid support through 2030+) or BellSoft Liberica.
Yes. Microsoft Build is deployed in production across financial services, healthcare, regulated retailers, telecoms, and public sector organisations. For Azure-hosted workloads, Microsoft Build inherits the Azure compliance certifications (SOC 2, ISO 27001, HIPAA, FedRAMP High, IRAP, GDPR, and others). For off-Azure workloads requiring vendor-backed indemnification, Microsoft Premier Support coverage of Microsoft Build provides commercial support backing. The combination of Microsoft Build runtime plus Microsoft Premier Support satisfies the regulatory requirements for vendor-backed Java support without the Oracle Employee Metric. For broader context on Oracle Java commercial mechanics and the audit-defence playbook, see our piece on Oracle Java Licensing Guide and our comparison with Oracle Java SE vs Eclipse Temurin.
Independence statement: Oracle Licensing Experts is an independent buyer-side advisory firm. Not affiliated with Oracle Corporation. We have no commercial relationship with Microsoft. All numbers above reflect published list pricing for Oracle Java SE Universal Subscription and benchmark migration economics as observed in buyer-side engagements.
Java audit alerts, Employee Metric benchmarks, Microsoft Build / Temurin / Corretto migration patterns, and Oracle audit-defence intel — every two weeks. Read by CIOs, application owners, and Azure architects.
No spam. Unsubscribe anytime. Not affiliated with Oracle Corporation.