Announcing Preview of Microsoft Build of OpenJDK
Update May 25th, 2021: Microsoft Build of openJDK is now generally available for production. Read the announcement.
We are excited to announce the preview of the Microsoft Build of OpenJDK, a new no-cost Long-Term Support (LTS) distribution of OpenJDK that is open source and available for free for anyone to deploy anywhere. It includes binaries for Java 11, based on OpenJDK 11.0.10+9, on x64 server and desktop environments on macOS, Linux, and Windows. We are also publishing a new Early Access binary for Java 16 for Windows on ARM, based on the latest OpenJDK 16+36 release.
Visit microsoft.com/openjdk to download packages and installers.
Java is one of the most important programming languages used today — developers use Java to build everything from critical enterprise applications to hobby robots. At Microsoft, we’ve seen increasing growth in customer use of Java across our cloud services and development tools. We’re continually working to broaden and deepen our Java support for customers and developers.
The Microsoft Build of OpenJDK binaries for Java 11 are based on OpenJDK source code, following the same build scripts used by the Eclipse Adoptium project and tested against the Eclipse Adoptium Quality Assurance suite (including OpenJDK project tests). Our binaries for Java 11 have passed the Java Technology Compatibility Kit (TCK) for Java 11, which is used to verify compatibility with the Java 11 specification. The Microsoft Build of OpenJDK is a simple drop-in replacement for any other OpenJDK distribution available in the Java ecosystem.
Try it now! If you are a Microsoft Azure customer, visit Azure Cloud Shell on your browser or right in the Windows Terminal:
Our contributions to OpenJDK started small as we learned about the process and how to participate in a meaningful way. Over the past 18 months, we contributed more than 50 patches covering areas such as macOS packaging, build and infrastructure, GC fixes, and enhancements for Windows. One of our key contributions was JEP 388 – The Windows/AArch64 Port to run Java on Windows ARM devices like the Surface Pro X. This work was significant in enabling the port for macOS on Apple Silicon. In 2020, we published Early Access builds of OpenJDK 16 for these new platforms. We are now excited to continue building on this work by producing binaries based on OpenJDK 11 for x64 platforms covering the three major operating systems and to share this work with the Java community and our Microsoft Azure customers.
Microsoft Build of OpenJDK 11 binaries may contain backported fixes and enhancements we deem important to our customers and our internal users. Some of these may have not yet been formally backported upstream and are clearly signposted in our release notes. This allows us to expedite improvements and fixes much faster while we proceed to upstream those changes in parallel. Updates will be free and available to every Java developer to deploy anywhere.
Over the past few years, we have collaborated with Azul Systems and other vendors to deliver high-quality Java support to our customers, users, and our own operations. Microsoft is thankful for the amazing assistance provided, and we are committed to continuing to collaborate through the OpenJDK Project and the Eclipse Adoptium Working Group.
Java at Microsoft
Microsoft relies on Java technologies for a variety of its own internal systems, applications, and workloads to enable well-known public services and products as well as a significant set of mission-critical systems that power Azure infrastructure. We have been working on optimizing our Java-based systems and securing our supply chain to benefit our customers and users.
Microsoft deploys over 500,000 Java Virtual Machines (JVMs) internally – excluding all Azure services and customer workloads – with needs that go from back-end microservices to Big Data systems, message brokers, event streaming services, and gaming servers. More than 140,000 of these JVMs are already based on the Microsoft Build of OpenJDK.
Microsoft uses a variety of open-source Java projects for critical tasks across Azure to support its global infrastructure, as well as for Big Data and log analytics systems. The back-end services of both LinkedIn and Yammer are almost entirely implemented on distributed cloud-native Java microservices. Minecraft Java Edition also remains ubiquitous with a significant ecosystem of mods and a community of enthusiastic modders, and we leverage Java to run the servers behind Minecraft Realms.
Azure is seeing significant growth in Java workloads through Azure Spring Cloud, Azure App Service, Azure Functions, and Azure Kubernetes Service. In the future, and once we start rolling out new JVMs with the Microsoft Build of OpenJDK across Azure, we will look for opportunities to recommend better optimizations for Java-based workloads on these services.
Later this year, the Microsoft Build of OpenJDK will become the default distribution for Java 11 across Azure-managed services. Customers won’t have to perform any maintenance tasks, as the transition will be smooth and transparent through application deployments. For all other Azure services, customers can bring their JDK of choice, including Microsoft Build of OpenJDK. We will provide more updates on that in the coming months.
Frequently Asked Questions
- Java 11 was released in 2018. Why are these binaries a preview?
- While this distribution is based on GA code of OpenJDK 11.0.10, this release of Microsoft Build of OpenJDK is a preview because we want to give our customers and users an opportunity to provide feedback on things like the packaging and installation experience before we ship a production-ready Generally Available release.
- For how long will you support Java 11?
- Microsoft will support Java 11 until at least 2024, with quarterly updates.
- Will you release other versions of Java?
- We plan to release OpenJDK 17 binaries by the end of this year as soon as Java 17 is finalized.
- Will you support Java 8?
- On Azure-managed services that offer Java 8 as a target runtime option, Microsoft will be supporting Java 8 binaries from Eclipse Adoptium (formerly AdoptOpenJDK). For all other Azure services, customers can bring their JDK of choice for Java 8, such as Azul Systems’ Zulu. However, Microsoft recommends customers move to Java 11 and later versions to benefit from several enhancements that can be translated into cost savings in cloud deployments and accelerated developer productivity. We believe the process is worth the effort and have provided guidance to help streamline this transition.
- How are these binaries licensed?
- General Public License 2.0 with Classpath Exception (GPLv2+CE).
- Will you provide container images?
- We will soon publish them through Docker Hub.
- How long will it take to get binaries after OpenJDK has declared the GA tag?
- Microsoft Build of OpenJDK is put through a rigorous suite of tests from the Eclipse Adoptium AQAvit project as well as the compliance tests from the Java Technology Compatibility Kit. This process typically takes 24-48 hours to complete but can take longer.
Please do send us your comments, thoughts, and ideas to help us improve this. Visit our GitHub page to send us your feedback.