New! JVM Inventory, a feature of Azul Intelligence Cloud, accelerates Oracle Java migration and ensures ongoing compliance - Learn More
Support
open-jdk-bg

OpenJDK: Java Development Kit

The Java Development Kit (JDK) is a cross-platform development environment distributed by Oracle. The JDK is essential for developing Java applications, as it provides a complete set of tools and libraries that help developers build, test, and maintain their Java applications. The JDK is the backbone of Java development. If you want to develop Java applications, you need to install a JDK in your development environment. The JDK acts as a toolbox for Java developers, containing everything you need to write, compile, and run Java applications.

Products
Type
Topic
Role
Found all results
Searching on a tablet computer

No Results to Show

Uh-oh, we couldn’t find any results that match. Adjust your filters or search and try again.

What Is OpenJDK?

The most widely used JDK distribution is OpenJDK, which is the open-source reference implementation of the Java Platform, Standard Edition. It includes all the essential tools and libraries needed to develop Java applications, such as the compiler and runtime environment. This rich set of features makes it an ideal development platform for building and running Java applications. OpenJDK is maintained by the OpenJDK community and is freely available under the GNU General Public License (GPL) v2 with Classpath Exceptions.

Typically, OpenJDK and Oracle Java SE are so similar that you can switch between them without much issue. However, there might be differences in licensing terms, long-term support (LTS) timelines, and commercial support, depending on the vendor .

Java Development Kit (JDK) Components

  • Javac (compiler): The Java compiler reads the source code files written in Java and converts them into Java bytecode .class files, which can be executed by the Java Virtual Machine on any operating system.
  • Java Virtual Machine (JVM): A JVM is a virtual machine that enables the execution of Java bytecode, which is generated by the compiler. The JVM loads, verifies, and executes the code. It provides the runtime environment (see below) and manages the memory, which includes garbage collection.
  • Java Runtime Environment (JRE): The JRE provides the essential environment and tools necessary to run Java code. It includes the core Java class libraries.
  • Java Archive (jar): Java applications and libraries contain hundreds of different files, such as compiled Java class files, JSON files, configuration data files, images, and so on. In simple terms, the Java Archiver packages multiple files into a single JAR file. It’s like a zip file, but it’s specifically designed for Java applications.

Is There More than One JDK?

JDK distributions are build from the OpenJDK source code, but each vendor builds that source code slightly differently. Choosing the right JDK depends on your development and deployments needs.

Here are some of the most widely used JDK distributions:

  • Azul Platform Core based on Azul’s Zulu builds of Open JDK, is a one-to-one replacement for Oracle Java SE at dramatically lower costs. It supports the largest variety of versions, architectures, package types, and configuration options.
  • Amazon Corretto is a distribution of OpenJDK provided by Amazon as a convenience for customers that want to deploy their Java applications on Amazon Web Services (AWS) and is supported for free with an AWS subscription.
  • Eclipse Temurin is a free distribution of OpenJDK maintained by the Adoptium Project within the Eclipse Foundation. Unlike its AdoptOpenJDK predecessor, Temurin builds are Technology Compatibility Kit (TCK, aka Java Compatibility Kit or JCK) tested to ensure compatibility with Oracle Java SE (in fact, all commercial OpenJDK distributions are TCK/JCK tested) Temurin releases are updated and supported by the Adoptium community.
  • Oracle Java SE is Oracle’s commercial build of OpenJDK, offering the latest Java features and updates. Oracle offers commercial support and a subscription model for receiving updates and long-term support for Java SE.

You can learn more about these distributions and a few more in the Oracle Renewal vs OpenJDK Comparison Guide.

Considerations when Choosing a JDK Distribution

When choosing a JDK distribution, you should consider several factors to ensure that the distribution aligns with your development organization’s specific needs. Deciding the correct choice will affect your development workflow, security, and future scalability. Below are the key considerations to keep in mind when selecting a JDK distribution that meetsyour requirements.

  • Consider the cost: choosing a cost efficient JDK distribution can be a significant advantage, especially for startups, independent developers, or businesses looking to optimize their budgets. All third-party OpenJDK distributions (including Azul’s Zulu build of OpenJDK) are open-source and freely available with no licensing fees or commercial subscription costs.
  • Long-Term Support: It’s crucial to consider the support lifecycle when choosing a JDK, because you need to maintain application stability, ensure continued access to timely security patches and avoid the need for frequent upgrades/migrations. Some OpenJDK providers have already dropped support for Java 6, 7 and 11, while others offer limited support timelines for different versions of Java. Azul provides at least 8 years of access to bug fixes, security updates, and other fixes as needed for LTS releases.
  • Platform Compatibility: Ensure the distribution supports the operating systems your organization needs, such as Windows, Linux, macOS and Solaris on desktops and servers, in development and production environments. If you also deploy in the cloud, make sure your choice supports all of the cloud platforms you use, as well. For example, Amazon Corretto is only supported on AWS.

OpenJDK Features

  • Open source with no restrictions: OpenJDK is open source and freely available, with no-field-of use restrictions, Meaning you can use OpenJDK for any type of application and (as long as you utilize the classpath exceptions) you don’t need to disclose your source code when linking with OpenJDK.
  • Regular updates and security fixes: OpenJDK providers are free to release updates for their distributions as soon as Oracle publishes their own quarterly Java updates. Providers should quickly release their updates because the vulnerabilities are published by Oracle with their Java update release notes. Timely release of security updates is essential to mitigate the risk caused by known vulnerabilities (Oracle and Azul are the only distributors that release out-of-cycle updates to address incidents like zero-day vulnerabilities).
  • Performance parity: The OpenJDK offers the same level of performance as Oracle Java SE. You can switch between all major OpenJDK distributions without facing any performance degradations.

OpenJDK Considerations

When choosing an OpenJDK distribution, it’s important to consider the type of support available.

  • Long-Term Support (LTS) Availability: All OpenJDK vendors provide support for LTS Java releases, but not all OpenJDK providers are consistent in how long they provide support.Depending on which LTS versions you currently use, and which you are plannin to use, it is a good idea to check how long the vendor promises to provide support (Azul provides some of the longest support lifecycles for LTS releases).
  • Java 6 & 7 Extended Support: Oracle no longer provides updates for older versions of Java, like Java 6 and 7. Only Azul continues to backport security fixes for Java 6 and 7 as part of our commercial support offering..
  • Commercial Support for OpenJDK: Commercial support typically includes regular, quarterly updates that deliver security patches, bug fixes, enhancements, new features, etc. Additionally, technical support is provided to help troubleshoot, solve issues, perform root cause analysis, etc in a timely manner. Some vendors may also provide support and (in some cases) advisory services when it comes to migrating from Oracle Java SE to their OpenJDK distribution. Vendors like Azul, and Red Hat provide these kinds of commercial support for OpenJDK.

Comparing OpenJDK Options

There are many OpenJDK options provided by a variety of vendors, each offering slightly different variations in terms of commercial support, licensing, long-term support (LTS) lifecycles, and support for deployment in specific environments. Which one is right for you often comes down to specific needs such as fast updates, cloud compatibility and commercial support terms. Let’s see a key comparison between OpenJDK and Oracle JDK.

OpenJDK:

  • Licensing: Open-source (GNU GPL v2 with Classpath Exceptions).
  • Development: Maintained by the OpenJDK community, including Oracle, Red Hat, and many others.
  • Release Cycle: Typically, same as Oracle.
  • Support: Community support, as well as commercial support from specific vendors.
  • Optimization: Varies by vendor (Azul, Amazon Corretto, etc.)

Oracle JDK:

  • Licensing: Fees Terms & Conditions (NFTC) – free for production use for a limited time. Oracle Technology Licensing Network (OTLN) – requires a fee for production deployment (there are numerous historical and situational licenses, as well).
  • Development: Oracle-maintained, with some community contributions.
  • Release Cycle: TS releases every 6 months, LTS releases every 3 years.
  • Support: Commercial support available.
  • Optimization: Optimized for Oracle Environments.

To explore how different JDKs compare across vendors, see the JDK Comparison Matrix.

Azul Platform Core and OpenJDK

If you are running Java in production, your choice of JDK distribution is crucial. Azul Platform Core provides a trusted, supported OpenJDK runtime that meets enterprise demands for stability, performance, and security. Azul Platform Core is an OpenJDK distribution provided by Azul, specifically designed for enterprise production use, as well as for distribution, and embedded use cases. Azul Platform Core offers support for both short-term support (STS) releases and long-term support (LTS) releases, along with security and performance updates, without any restrictive licensing.

Azul Zulu builds of OpenJDK are free to use, while delivering enterprise-grade stability and consistent, timely updates. This makes it a popular choice among organizations seeking to reduce Java licensing costs without compromising on trust, value, or security.

Let’s look at the key features related to Azul Platform Core.

  • TCK Certified Builds: Azul Platform Core offers builds that are thoroughly tested and certified with the Java SE TCK (Technology Compatibility Kit), ensuring compliance with Java standards.
  • Long-Term Support (LTS): commercial support for Long-Term Support (LTS) is a key offering of Azul Platform Core, providing organizations with access to reliable, stable and secure versions of the Java runtime for an extended period.
  • Wide Platform Compatibility: Supports a broad range of platforms and environments, including operating systems such as Linux, Windows, macOS, Solaris, and more.
  • Security-Focused-Updates: Azul offer quarterly Critical Patch Updates (CPUs) that deliver security fixes on a stabilized build to minimize the risk of a regression. Suitable for immediate deployment with minimal testing requirements.
  • Advance Product Enhancements: Azul provides support for a wide variety of product enhancements, such as Coordinated Restore at Checkpoint (CRaC) that dramatically reduces startup and warmup times for Java applications, as well as out-of-the-box support for the US Federal Information Processing Standard (FIPS), and more.

To learn more about Azul’s distribution of OpenJDK, see Azul Platform Core.