Java support on Azure and Azure Stack

Java developers can build, integrate, and deploy applications to a variety of Azure and Azure Stack services. Developers are free to use the distribution and version of Java of their choice for most Microsoft Azure services. Certain services will provide and manage a Java runtime on behalf of customers. This document will help you understand which services provide a Java runtime by default, and which services do not.


Update June 30th, 2021: Zulu for Azure will no longer receive updates or support starting January 1st, 2022. Azure services are transitioning to Microsoft Build of OpenJDK for JDK 11 and Eclipse Temurin for JDK 8. For more information, see End of Updates, Support and Availability of the Zulu for Azure builds of OpenJDK.

Services with a managed or default Java runtime

For the following services the Java runtime is managed, or provided by default, by Microsoft:

  • Azure App Service on Windows
  • Azure App Service on Linux
  • Azure Functions
  • Azure Spring Cloud
  • Azure Service Fabric
  • Azure HDInsight
  • Azure Cognitive Search
  • Azure Cloud Shell
  • Azure DevOps

For some of the services above, you may be able to change the Java runtime from the one provided by default. For more information, see the documentation of the service.

Supported Java versions and update schedule

The following versions of Java are supported for Microsoft developer tools, and Azure and Azure Stack services with a JDK managed by Microsoft:

Updates to OpenJDK 8u, OpenJDK 11u, and OpenJDK 17u are released every quarter (January, April, July, and October).

For more information on the availability of other versions of Java, and for the support roadmap, see the specific Azure service documentation.

OpenJDK distributions deployed

Microsoft may use 3rd-party Java distributions and binaries for a range of Java versions on some of the managed services - namely Eclipse Temurin and Azul Zulu for Azure. Microsoft will keep those 3rd-party distributions up to date for as long as there are updates available. For all other cases, Microsoft deploys the Microsoft Build of OpenJDK.

Services without a managed or default Java runtime

For Azure Compute services such as Azure Virtual Machines, Azure Kubernetes Services (AKS), Azure Container Instances (ACI), Azure Red Hat OpenShift, and Azure App Service Web App for Containers, or services where users can manually configure the infrastructure and its components, the choice of the Java runtime is entirely up to you.

While Java developers can bring their own Java runtimes from different vendors to Azure on these services, Microsoft recommends that you use any of the following OpenJDK distributions:

For information on how to install and use OpenJDK, see the documentation for one of these distributions.

Customer support

For issues related to the deployment of Java applications to Azure, Azure Stack services, Azure Arc enabled clusters, and integration with Azure REST APIs, customers with a qualifying support plan receive support without any extra cost.