Fact-checked by Grok 2 weeks ago

OpenJDK

OpenJDK is a free and open-source implementation of the (Java SE), serving as the primary reference for developing and running Java applications across multiple platforms. Launched in 2006 as an initiative by to open-source the core components of Java SE, it transitioned under Corporation's stewardship following Sun's acquisition in 2010, ensuring continued evolution of the platform. Licensed under the GNU General Public License version 2 with the Classpath Exception, OpenJDK enables broad community participation while maintaining compatibility with Java SE specifications. The project is hosted on and governed by a collaborative structure involving contributors from organizations such as , , , and , with active development focused on releases like JDK 21 and feature updates in versions up to JDK 25. Key ongoing efforts include specialized projects like for language enhancements, for virtual threads and concurrency improvements, for foreign function integration, and for value types and primitives, all aimed at advancing Java's performance and usability.

Overview

Definition and Purpose

OpenJDK is a and open-source implementation of the (Java SE). It provides the core software components necessary for developing, compiling, and running Java applications, serving as the primary open-source reference for the Java SE specifications defined through the . The project is licensed under the GNU General Public License version 2 (GPLv2) with the Classpath Exception, which permits linking with independent modules under different licenses without requiring the entire application to adopt the GPL. This licensing model distinguishes OpenJDK from alternatives by allowing broad use, modification, and distribution without mandatory disclosure for linked components. Its primary purpose is to act as the for SE standards, enabling developers to build and execute Java software in compliance with the specifications while fostering across platforms. OpenJDK originated from Sun Microsystems' commitment in November 2006 to open-source the Java platform, fulfilling a long-standing promise to make the technology freely available and counter closed-source implementations that limited adoption. This initiative aimed to promote wider community involvement and innovation in Java development. Key benefits include its community-driven , which encourages contributions from developers worldwide through accessible repositories and collaborative processes; the absence of licensing fees, making it cost-effective for individuals and organizations; and compatibility testing via the (TCK), accessible under the OpenJDK Community TCK License Agreement (OCTLA) to ensure certified implementations meet Java SE standards.

Relation to Java SE and Oracle JDK

OpenJDK serves as the primary open-source project and upstream base for the of the ( SE). It provides the foundational codebase from which compliant SE implementations are derived, ensuring alignment with the specifications defined by the . To verify compliance, OpenJDK builds undergo testing with the Java Compatibility Kit (JCK), also known as the Technology Compatibility Kit (TCK) for SE, which confirms that the implementation meets the required standards for APIs, language features, and behaviors. , as a key contributor, typically certifies its OpenJDK-derived builds as passing the TCK, enabling them to be branded as official SE reference implementations. In comparison, Oracle JDK is built directly from the OpenJDK source code but includes additional proprietary components and commercial support options not present in the standard OpenJDK distribution. Historically, prior to Java 9, Oracle JDK featured more proprietary elements, such as Java Flight Recorder (JFR) for low-overhead profiling and certain third-party fonts, which were absent from OpenJDK. However, following the modularization introduced in Java 9 and further convergence by Java 11, the differences have significantly diminished; JFR, for instance, was open-sourced and integrated into OpenJDK starting with JDK 11, making the core functionalities nearly identical. OpenJDK and Oracle JDK maintain binary compatibility for the vast majority of applications, allowing binaries compiled with one to run seamlessly on the other without recompilation in most scenarios. The primary distinctions now lie in Oracle JDK's optional closed-source modules, enhanced installation packages (e.g., MSI or RPM installers), and access to Oracle's paid support ecosystem, whereas OpenJDK emphasizes community-driven development and free distribution under the . This evolution reflects a strategic shift toward greater openness post-acquisition of by in 2010, reducing divergence while preserving commercial extensions.

History

Origins at Sun Microsystems (2006-2009)

In May 2006, Sun Microsystems CEO Jonathan Schwartz announced at the JavaOne conference the company's intent to open-source the Java platform under the GNU General Public License version 2 (GPLv2) with the Classpath Exception, aiming to broaden adoption and prevent the emergence of proprietary forks such as Apache Harmony. This move was driven by competitive pressures and the need to unify the Java ecosystem under a single, modifiable implementation while retaining compatibility guarantees. On November 13, 2006, Sun fulfilled the initial phase of this commitment by releasing the source code for key components of Java SE 6, including the HotSpot Java Virtual Machine (JVM) and compiler, under the GPLv2 with Classpath Exception. Concurrently, the OpenJDK project was established as the official open-source implementation, with the formation of a community infrastructure featuring mailing lists for discussion and a bug tracking system to facilitate contributions. The first major OpenJDK 6 build (b01) was released on May 8, 2007, comprising the JVM, , and a partial class library, but excluding encumbered proprietary elements such as closed-source multimedia codecs and certain font rasterizers to ensure full open-source compliance. This initial release marked a significant step toward a complete open-source JDK, though it required subsequent efforts to replace removed components through community-driven alternatives. Between 2008 and 2009, OpenJDK matured with the October 2008 release of OpenJDK 6u10, which achieved full compliance with the (TCK), verifying its adherence to Java SE 6 specifications. Early community contributions addressed library gaps, notably implementing font rendering using the open-source library to replace Sun's proprietary rasterizer. Throughout this period, developers faced challenges including legal complexities in reconciling third-party code licenses with the GPLv2 requirements and the absence of binary plugins for proprietary features like audio and , which limited immediate functionality in some applications.

Oracle Era and Key Collaborations (2010-2020)

In January 2010, completed its acquisition of for approximately $7.4 billion, thereby assuming stewardship of the platform, including OpenJDK. committed to maintaining OpenJDK as the primary open-source implementation of the Java SE platform specification and to releasing the source code for its proprietary builds under the GNU General Public License version 2 with the Exception, ensuring alignment between the two distributions. By 2011, OpenJDK saw expanded collaborations with major vendors to facilitate feature backports, compatibility testing, and multi-vendor support. joined the project in October 2010, contributing expertise in JVM optimization. In 2017, open-sourced its J9 JVM as Eclipse OpenJ9, providing an alternative to the JVM that has since been integrated into various OpenJDK distributions to enhance performance in enterprise environments. Apple contributed key components for the Mac OS X port in November 2010, including its JVM customizations and libraries, but ceased active and updates for Java on macOS by 2012, shifting responsibility to and the community. joined in July 2011, focusing on class library enhancements and optimizations for large-scale enterprise applications, such as improved garbage collection and security features. Key releases during this period included OpenJDK 7 in July 2011, which faced delays from an initial 2009 target due to licensing and compatibility issues surrounding the (TCK) and the resolution of competing implementations like Apache Harmony. OpenJDK 8 followed in March 2014, introducing lambda expressions for support and establishing the foundation for (LTS) releases, with updates extending beyond standard cycles. Significant shifts occurred toward the end of the decade, with the adoption of a six-month release cadence beginning with 9 in September 2017, which incorporated Project Jigsaw to introduce the for better modularity and encapsulation. Concurrently, ended free public updates for older versions in commercial contexts, notably for Java SE 8 after January 2019, requiring paid subscriptions for ongoing security patches and support.

Recent Developments (2021-2025)

OpenJDK continued its evolution during 2021-2025 with a series of feature releases and long-term support (LTS) versions that emphasized concurrency improvements, native interoperability, and performance optimizations. This period marked a shift toward more frequent enhancements driven by the six-month release cadence, enabling rapid iteration on language features and platform capabilities. JDK 17, released on September 14, 2021, as an LTS version, introduced sealed classes via JEP 409, which allow developers to restrict which classes or interfaces may extend or implement others, enhancing encapsulation and modeling hierarchies. It also featured pattern matching for switch in preview form (JEP 406), enabling more expressive and concise switch statements by allowing patterns in case labels. Additionally, the Foreign Function & Memory API entered incubator status (JEP 412), providing a safer and more efficient way to interact with native code and memory without relying on JNI. Early work under Project Loom laid the foundation for future concurrency features, though full stabilization of virtual threads occurred later. In 2023, JDK 21 emerged as the next LTS release on September 19, finalizing virtual threads (JEP 444) from Project Loom as a stable feature, allowing millions of lightweight threads to simplify high-throughput concurrent applications while reducing resource overhead compared to platform threads. This release also previewed string templates (JEP 430) for safer and more readable , and introduced sequenced collections (JEP 431), a new interface extending collections to support ordered access at both ends, improving usability for queues and deques. These additions addressed modern application demands for scalability and expressiveness. The feature releases of 2024, including JDK 22 (March 19), JDK 23 (September 17), and JDK 24 (March 18, 2025), built on prior LTS foundations with targeted enhancements. JDK 22 advanced implicitly declared classes and instance main methods in second preview (JEP 463), simplifying entry-point code for beginners and scripting use cases by allowing classes without explicit declarations. The progressed to preview (JEP 454), with refinements for better native integration. JDK 23 focused on class-related improvements like the (second preview, JEP 466) for direct manipulation of class files, while JDK 24 previewed ahead-of-time class loading and linking (JEP 483), aiming to reduce startup times by pre-processing classes during build. These releases emphasized developer productivity and runtime efficiency. Culminating the period, JDK 25 was released on September 16, 2025, as the latest LTS version, incorporating scoped values (JEP 506) to provide immutable, thread-local carriers for context propagation in concurrent code, enhancing safety in virtual thread environments. It also previewed stable values (JEP 502), an evolution for sharing read-only data across s without synchronization overhead, and refined (JEP 505) with further previews to manage thread hierarchies more robustly, reducing cancellation and error propagation issues. These features from Project Loom further matured concurrency support for scalable applications. Throughout 2025, OpenJDK emphasized performance optimizations in the Foreign Function & Memory (FFM) API and ahead-of-time (AOT) code generation, with JEPs targeting faster native calls and reduced startup latency to better suit containerized and edge deployments. Regarding legacy support, July 2025 marked the end-of-life for certain community and vendor builds of JDK 8 and JDK 11, prompting migrations to newer LTS versions amid ongoing extended support until 2030 and 2032, respectively. The OpenJDK community experienced notable growth, with an increase in Java Enhancement Proposals (JEPs) from approximately 15-20 per release in 2021 to 18 in JDK 25, many addressing cloud-native requirements like faster startups and workloads through enhanced vector APIs and . This surge reflected broader adoption in and emerging domains.

Technical Components

Core Elements (JVM, Compiler, Class Library)

The core elements of OpenJDK form the foundational infrastructure for executing Java applications, comprising the HotSpot Java Virtual Machine (JVM), the javac compiler, and the Java Class Library. These components integrate seamlessly to provide a complete development and runtime environment, enabling developers to compile, optimize, and run Java code efficiently across various platforms. The HotSpot JVM serves as the primary runtime engine in OpenJDK, implementing the Java Virtual Machine Specification through an adaptive just-in-time (JIT) compilation system that dynamically optimizes bytecode into native machine code based on runtime profiling. This adaptive optimization leverages program execution patterns to improve performance, with features like tiered compilation that starts with interpretation and progresses to full JIT optimization for frequently executed ("hot") methods. HotSpot supports multiple garbage collectors tailored for different workloads, including the G1 collector, which is designed for applications with large heaps and aims to meet pause-time goals through region-based management; the Z Garbage Collector (ZGC), capable of handling heaps from 8 MB to 16 TB with sub-millisecond pause times by performing most work concurrently; and the Shenandoah collector, which minimizes pause times by evacuating objects concurrently with application threads and, as of JDK 25, includes generational support for separate young and old generation management to enhance throughput and latency. Additionally, HotSpot provides broad platform support, including AArch64 (ARM64) architecture via dedicated port projects, ensuring compatibility with modern server and embedded systems. The javac compiler acts as the reference implementation for the Java programming language in OpenJDK, responsible for parsing source code, performing type checking, and generating bytecode while enforcing the language's syntax and semantics. It includes robust support for advanced features such as annotation processing, which allows pluggable processors to analyze and modify code during compilation via the standard javax.annotation.processing API. Javac integrates with JShell, OpenJDK's interactive read-eval-print loop (REPL) tool, enabling rapid prototyping by compiling and executing code snippets in an interactive session without full file-based compilation. This makes javac a cornerstone for both batch and interactive development workflows. The in OpenJDK encompasses the standard APIs essential for application development, primarily housed in the foundational java.base module and extended through other core modules. Key components include the java.util package for collections frameworks like ArrayList and HashMap, which provide efficient data structures for managing objects; the java.io and java.nio packages for input/output operations, supporting file handling, streams, and buffers; the java.net package for networking functionalities such as sockets and connections; and the java.security package for cryptographic operations, , and secure random number generation. These libraries draw from open-source contributions via the Core Libraries group. Together, these elements constitute the OpenJDK , where compiles into utilizing the Class Library APIs, and the HotSpot JVM then loads, verifies, and executes that at , applying optimizations and as needed. This integrated setup supports the full lifecycle of Java applications, from development to deployment, while aligning with the modular structure introduced in Java 9 for better encapsulation and scalability.

Modular Structure and Supporting Projects

OpenJDK's modular architecture was introduced through Project Jigsaw, which delivered the (JPMS) starting with Java SE 9. The JPMS enables developers to organize code into modules, each defined by a module descriptor (module-info.java) that specifies dependencies, exports, and services, promoting strong encapsulation by restricting access to internal packages. The foundational module, java.base, contains core APIs such as java.lang and java.util, serving as the minimal set for any modular application. Tools like jlink allow assembly of custom runtime images by linking only required modules, excluding unused components from the full JDK. Several supporting projects extend OpenJDK's functionality beyond the core platform. OpenJFX provides an open-source implementation of , a platform for creating rich client applications with graphics and UI components, integrated as a separate module since Java 11. CORBA, a legacy standard for communication, was included as modules in earlier JDK versions but deprecated in Java 9 and fully removed in Java 11 due to declining usage and maintenance challenges. Project Nashorn offered a runtime engine for embedding scripting via JSR 223, but it was deprecated in Java 11 and removed in Java 15 in favor of more modern alternatives. Additionally, OpenJDK integrates with as an experimental feature for ahead-of-time native compilation, enabling production of standalone executables with reduced resource needs through incubator modules. The OpenJDK source code is organized in a consolidated repository structure, transitioned from to under Project Skara for improved collaboration. At the top level, key directories include src for platform source code organized by modules, test for regression and quality assurance tests, and make for build scripts and configuration. This layout supports modular development by aligning source paths with JPMS boundaries, such as src/jdk.base for the java.base module. Modularity in OpenJDK yields benefits like enhanced dependency management through explicit module declarations, preventing classpath ambiguities and enabling reliable configuration at build time. It facilitates smaller application footprints by allowing jlink to produce minimal runtimes, often reducing image sizes by selecting only essential modules and stripping observability code. Furthermore, custom runtimes contribute to faster startup times, as applications load fewer classes and resources compared to traditional monolithic deployments.

Release Model

Cadence and Support Lifecycle

OpenJDK follows a six-month release cadence for feature releases, established since Java 9 and formalized with Java 10, with new versions typically shipping in March and September each year. This schedule allows for regular delivery of enhancements while maintaining stability, with (LTS) versions designated every two years to provide extended reliability for production environments; examples include JDK 11 (2018), JDK 17 (2021), JDK 21 (2023), and JDK 25 (2025). LTS releases are supported for at least eight years, with a one-year overlap between consecutive LTS versions to facilitate migrations, including premier support for four years followed by extended support, encompassing security patches, bug fixes, and performance improvements; for instance, JDK 21 is supported until at least September 2031 under Oracle's terms. Non-LTS versions, by contrast, are maintained for approximately two to three years through update cycles, focusing primarily on critical and fixes before reaching end-of-life. These updates are managed via the JDK Updates Project, which coordinates quarterly releases—typically on the third Tuesday of , , , and —for both LTS and supported non-LTS versions, prioritizing remediation and essential bug resolutions. In 2025, LTS releases like JDK 21 and JDK 25 continue to receive quarterly updates to address issues and , ensuring ongoing and . However, JDK 8 and JDK 11 reached their free public end-of-life in July 2025, after which and OpenJDK ceased providing no-cost updates, though third-party vendors such as , Azul, and offer extended commercial support options for continued patching. The governance of OpenJDK releases is facilitated through the JDK Enhancement Proposal (JEP) process, where proposed features are reviewed, prioritized, and integrated by OpenJDK project leads, with Oracle providing coordination as the primary sponsor and steward of the overall release timeline. This collaborative framework ensures that enhancements align with community needs while adhering to the fixed cadence and support policies.

Major Versions and LTS Releases

OpenJDK's early major versions, from JDK 6 (released in December 2006) to JDK 8 (released in March 2014), laid the foundation for the project's development without a formal (LTS) designation, though JDK 8 later became the first LTS release. JDK 6 introduced support via the Mozilla Rhino engine and improvements, while JDK 7 (July 2011) added features like the try-with-resources statement for automatic resource management and the diamond operator for generic . These releases focused on enhancing developer productivity and performance, with OpenJDK serving as the under the GNU General Public License version 2 with the Exception. JDK 8 marked the first LTS release, providing extended support and introducing lambda expressions for constructs and the Stream API for processing collections in a declarative manner. Subsequent LTS releases built on this model, with LTS versions designated every two years starting from JDK 11. JDK 11 (September 2018) introduced the var keyword for local-variable type inference, simplifying code readability, and standardized the HTTP Client (JEP 321) for modern network operations including support. JDK 17 (September 2021), the next LTS, finalized sealed classes (JEP 409) to restrict class inheritance hierarchies for better modeling and design, alongside the first preview of the Foreign Function & Memory (JEP 412) for safe interoperability with native code. Advancing further, JDK 21 (September 2023) delivered virtual threads (JEP 444) via Project to simplify concurrent programming by reducing the overhead of thread management, and pattern matching for switch statements (JEP 441) to enhance expressive . The most recent LTS, JDK 25 (September 2025), incorporates scoped values (JEP 506, final) for thread-local-like data sharing without inheritance, and further incubates the (JEP 508, Tenth ) for platform-agnostic vector computations to boost performance in numerical applications. Non-LTS releases introduced pivotal innovations that later stabilized in LTS versions, maintaining the six-month cadence for rapid evolution. JDK 9 (September 2017) pioneered the (JPMS, 261), enabling strong encapsulation and modularization of the JDK and applications to improve and . JDK 14 (March 2020) previewed ( 359), a concise class declaration for immutable data carriers that automatically generates constructors, accessors, and equality methods. Similarly, JDK 22 (March 2024) finalized the Foreign Function & Memory API ( 454), providing a standards-based mechanism for Java programs to call native libraries and manage off-heap memory efficiently. These version advancements have influenced migration strategies, particularly through deprecations that encourage modernization. In JDK 17, the Security Manager was deprecated for removal (JEP 411) due to its obsolescence in favor of more robust security models like modules and application-specific policies, prompting developers to refactor legacy code relying on it for sandboxing in subsequent releases.
VersionRelease DateLTS?Key Innovations
JDK 8March 2014YesLambda expressions, Stream API
JDK 9September 2017No
JDK 11September 2018Yes keyword, HTTP Client
JDK 14March 2020No (preview)
JDK 17September 2021YesSealed classes, Foreign Function & Memory API (preview)
JDK 21September 2023YesVirtual threads, Pattern matching for switch
JDK 22March 2024NoForeign Function & Memory API (final)
JDK 25September 2025YesScoped values (final), Vector API (tenth incubator)

Builds and Distributions

Official Oracle Builds

Oracle provides production-ready binaries for OpenJDK under the GNU General Public License version 2 with the Classpath Exception (GPLv2+CE), making them freely available for development and production use. These binaries for recent releases, including JDK 25, can be downloaded from jdk.java.net and include installers and archives for major operating systems such as , Windows, and macOS. They are offered at no cost under the Oracle No-Fee Terms and Conditions (NFTC) , allowing redistribution without fees, though subject to potential future policy adjustments. The update mechanism for these official Oracle OpenJDK builds focuses on quarterly and performance patches, delivered through Critical Updates (CPUs) that address vulnerabilities and other critical issues. For LTS releases like JDK 25, updates are planned to continue under the NFTC until 2028. In contrast, the commercial JDK, which shares the same codebase but operates under a separate licensing model, requires a subscription for certain production uses post-2025, particularly for extended updates on LTS releases. Supported platforms for Oracle's OpenJDK binaries primarily include x86_64 and architectures across , Windows, and macOS distributions. Source tarballs are also provided alongside the prebuilt binaries, enabling users to perform custom builds or compile for additional platforms if needed. As of November 2025, free binaries remain available for the latest OpenJDK versions, supporting broad adoption in development and production environments. However, for LTS releases such as JDK 21, updates beyond September 2026 will require a commercial subscription under the Java SE OTN , marking a shift toward paid support for extended LTS lifecycles.

Third-Party Builds and Vendors

The IcedTea project, initiated in 2007, provides harnesses and tools to build OpenJDK using compilers like , facilitating GNU-compatible distributions by replacing or removing proprietary components from the original source. Early efforts focused on eliminating encumbrances, such as binary stubs and non-free code, reducing non-free elements in the OpenJDK tree to zero by 2008, which addressed issues like the sorting algorithm's patent concerns through open alternatives. IcedTea builds have been integral to Linux distributions, powering OpenJDK 8 through 21 in and (RHEL) environments. Several major vendors offer pre-built, TCK-certified distributions of OpenJDK, enhancing accessibility and without altering the core codebase. Eclipse Adoptium's Temurin builds deliver high-performance, cross-platform binaries tested against the SE (TCK) for (LTS) releases like JDK 17 and 21. Corretto provides a production-ready, no-cost optimized for cloud workloads, including for processors, with binaries available up to JDK 25 as of September 2025. Microsoft's Build of OpenJDK emphasizes Windows compatibility with long-term patches, offering LTS for versions including JDK 11, 17, and 25 across x64 platforms on Windows, , and macOS. Hat's build integrates enterprise-grade for LTS releases, providing at least six years of updates for OpenJDK 8, 11, 17, and 21, with extended maintenance for critical versions in RHEL until at least 2027 for JDK 11. Azul's offers commercial-free, TCK-verified binaries for JDK 8 through 25, prioritizing open-source licensing and broad platform coverage without subscription fees. As of 2025, all major vendors supply production-ready binaries for JDK 25, an LTS release generally available since September 2025, ensuring compatibility and timely security updates. For end-of-life (EOL) versions like JDK 8, which reached upstream EOL in 2022, vendors and third-party providers such as TuxCare offer extended lifecycle support with free security patches, allowing continued use without immediate upgrades. Vendor builds typically adhere closely to upstream OpenJDK while incorporating platform-specific enhancements, such as Corretto's optimizations for ARM-based instances to improve performance in AWS environments, without modifying core SE specifications. These additions focus on deployment efficiency, like extended patching in and builds, contrasting Oracle's official distributions by emphasizing open ecosystems and vendor-specific reliability.

Community and Ecosystem

Governance and Contributions

OpenJDK operates under a meritocratic governance model managed by the OpenJDK.org community, structured through bylaws that emphasize open, transparent, and collaborative decision-making. The Governing Board, consisting of representatives including members elected annually, oversees the community's overall structure, operations, and health without direct control over technical or release decisions. serves as the primary steward, providing infrastructure and leadership, while individual projects such as the JDK and are led by designated project leads who guide development efforts. Participation is open to all, but contributors must sign the Contributor Agreement (OCA) or be affiliated with an organization that has, granting necessary rights for code integration while protecting intellectual property. The contribution process begins with reporting issues or proposing changes via the Java Bug System (JBS), a Jira-based tracker for bugs, enhancements, and tasks. Code changes undergo review using Skara, a Git-based tooling suite that supports pull requests, automated testing, and integration with repositories hosted on GitHub or similar platforms. Discussions occur primarily on project-specific mailing lists, fostering consensus among participants. For significant enhancements, the JDK Enhancement Proposal (JEP) process is used, involving proposal submission, review by experts, and integration into release plans if approved. The comprises over 1,000 active contributors as recorded in the official , including authors, committers, and members who have demonstrated sustained involvement. Roles progress from participants to contributors (via OCA), then to authors and committers based on contributions, with higher tiers like OpenJDK Members elected for notable impact. Specialized groups, such as Adopt a JSR, encourage and maintenance of Java Specification Requests (JSRs), enabling broader involvement in standards evolution. Key policies ensure a healthy , including adherence to principles of and outlined in the bylaws, which implicitly guide conduct through expectations of respectful collaboration. is safeguarded via the OCA, requiring contributors to warrant their submissions are original and unencumbered. Update planning occurs quarterly, aligning with the release cadence to prioritize fixes, enhancements, and maintenance through coordinated efforts across projects.

Adoption in Distributions and Applications

OpenJDK has become the default Java implementation in numerous operating system distributions, facilitating seamless integration for developers and users. In environments, it is readily available through package managers; for instance, and users can install it via apt-get install openjdk-<version>-jdk, making it the standard choice for Java development and runtime needs. , along with distributions like Gentoo, relies on the IcedTea project, which provides a free and open-source variant of OpenJDK tailored for these systems. On macOS, OpenJDK is accessible through Homebrew via the or Eclipse Adoptium's Temurin distribution, offering prebuilt binaries for and architectures. For Windows, provides its official build of OpenJDK, a no-cost, long-term supported distribution that integrates directly with the platform and supports enterprise deployments. In enterprise settings, OpenJDK powers key toolchains and ecosystems, underscoring its widespread use. Android development leverages OpenJDK as the bundled JDK in , enabling compilation of and Kotlin code for mobile applications without reliance on proprietary alternatives. applications, which form the backbone of many web and microservices, run natively on OpenJDK, with official support for 17+ LTS versions that align with OpenJDK's release cadence. In cloud environments, Amazon Corretto serves as AWS's production-ready OpenJDK distribution, optimized for services like EC2 and , while Microsoft's OpenJDK build integrates with for scalable workloads. Recent surveys indicate that nearly half of organizations migrating from Oracle are shifting to OpenJDK variants. Notable case studies highlight OpenJDK's role in high-scale deployments. integrates its build of OpenJDK into (RHEL) for server environments, providing certified support for versions like OpenJDK 21, which ensures reliability in data centers and cloud-native servers. , the foundational framework for big data processing, is built and tested against OpenJDK starting from Java 7, enabling its distributed file system and capabilities to scale across clusters in production environments. Adoption trends reflect a broader migration from JDK driven by licensing costs and audit risks, with two-thirds of switching organizations reporting cost savings. OpenJDK's , introduced via Project Jigsaw in Java 9, further accelerates this by enabling the creation of slim JREs tailored to specific applications, reducing container image sizes in and deployments for faster startups and lower resource overhead.

References

  1. [1]
    OpenJDK
    Installing ... Contributing ... Sponsoring ... Developers' Guide ... Vulnerabilities ... JDK GA/EA Builds ... Mailing lists ... Wiki · IRC ... Mastodon ... Bluesky ... Bylaws · ...Download and installJDK 21JDK 17Developers' GuideJDK Project
  2. [2]
    The history and future of OpenJDK - Red Hat
    Oct 17, 2018 · OpenJDK started as a free and open source implementation of the Java Platform, Standard Edition, as a result of a 2006 initiative by Sun Microsystems.
  3. [3]
    The OpenJDK Charter
    (“Sun”) has granted license to a particular subset of its Java SE Development Kit, known henceforth as OpenJDK, to all under terms compatible with Open Source ...Missing: origin | Show results with:origin
  4. [4]
    openjdk/jdk: JDK main-line development https://openjdk.org ... - GitHub
    Welcome to the JDK! For build instructions please see the online documentation, or either of these files.
  5. [5]
    JDK Project - OpenJDK
    Sep 15, 2025 · The goal of this long-running Project is to produce a series of open-source reference implementations of the Java SE Platform.JDK 17 · JDK 24 · JDK 21 · JDK 11
  6. [6]
    JDK 17 - OpenJDK
    JDK 17 is the open-source reference implementation of version 17 of the Java SE Platform, as specified by by JSR 390 in the Java Community Process.
  7. [7]
    Java Platform, Standard Edition 8 Reference Implementations - JDK
    The official Reference Implementations for Java SE 8 (JSR 337) are based solely upon open-source code available from the JDK 8 Project in the OpenJDK Community.
  8. [8]
    It's official: Sun open sources Java - InfoWorld
    What Sun is due to announce Monday is the open sourcing of both its Java Platform, Standard Edition (Java SE) and its Java Platform, Micro ...
  9. [9]
    Sun releases Java as open-source project - Business
    Oct 13, 2006 · Santa Clara-based Sun said it is making nearly all of Java's source code - excluding small pockets of code that are not owned by Sun - available ...
  10. [10]
    Gaining Access to the JCK - OpenJDK
    The Java Compatibility Kit (aka, the JCK or TCK for Java SE) is available at no charge to developers who are planning to deploy a compatible Java ...
  11. [11]
    Oracle JDK License General FAQs
    Sep 16, 2025 · This FAQ pertains to Oracle Java SE releases starting April 16, 2019 and has been updated to reflect the Oracle No-Fee Terms and Conditions License.
  12. [12]
    Sun promises to open-source Java - CNET
    Sun execs say the question is no longer whether the Java programming language will be open-sourced, but how it should be done.
  13. [13]
    Sun CEO sets open source Java time frame - InfoWorld
    Oct 25, 2006 · Schwartz, who said he is in his 184th day as CEO since taking over for Scott McNealy, stood atop his open source soapbox to tout Sun's ongoing ...
  14. [14]
    Sun to offer Java code for free on the Internet - Technology & Media
    Sun Microsystems said Monday that it would make its Java software a free product in a move that represented one of ...
  15. [15]
    The OpenJDK Developers' Guide
    For OpenJDK Projects the situation is somewhat different. The JDK is used for mission critical applications and by millions of developers, the bar to ...
  16. [16]
    Differences Between Oracle JDK and OpenJDK - Baeldung
    Jan 8, 2024 · We should emphasize that OpenJDK is an official reference implementation of a Java Standard Edition since version SE 7.
  17. [17]
    OpenJDK and the IcedTea Project - Red Hat
    Jun 24, 2008 · At JavaOne in May 2006, Sun Microsystems announced they were going to release Java as free software under the terms of the GPL.<|control11|><|separator|>
  18. [18]
    Oracle buys Sun, becomes hardware company - CNET
    Oracle announced Wednesday it completed its acquisition of Sun Microsystems in a deal valued at more than $7 billion.
  19. [19]
    Oracle's Stewardship of Java
    With its acquisition of Sun Microsystems in 2010, Oracle also acquired the ownership and stewardship of Java. ... Oracle is committed to OpenJDK as the ...Missing: January | Show results with:January
  20. [20]
    Java wars: IBM joins OpenJDK as Oracle shuns Apache Harmony
    Oct 13, 2010 · IBM has announced its intention to join the OpenJDK project, the official open source Java runtime effort that is led by Oracle.
  21. [21]
    Oracle and Apple Announce OpenJDK Project for Mac OS X
    Nov 12, 2010 · OpenJDK will make Apple's Java technology available to open source developers so they can access and contribute to the effort. “We are excited ...Missing: collaboration SAP 2011
  22. [22]
    SAP joins OpenJDK - SAP Community
    Which is why we recently decided to join the OpenJDK project in order to work with many other developers from Oracle, IBM, Apple, Red Hat and elsewhere on ...
  23. [23]
    JDK 7: The Long Hello and the Long Goodbye - Azul Systems
    Jun 22, 2022 · Due to issues around the availability of the TCK and the Apache Harmony project, new versions of OpenJDK had been stalled since December 2006.
  24. [24]
    Consolidated JDK 8 Release Notes - Oracle
    This page contains all of the release notes for General Availability (GA) releases and Bundled Patch Release (BPR) builds of JDK 8.
  25. [25]
    Project Jigsaw - OpenJDK
    Sep 22, 2017 · Work on Project Jigsaw completed in July 2017 and was delivered for general use as part of JDK 9 on 21 September 2017.
  26. [26]
    Oracle Java SE Support Roadmap
    Sep 16, 2025 · Oracle provides this Oracle Java SE Support Roadmap, to help you understand maintenance and support options and related timelines.
  27. [27]
  28. [28]
  29. [29]
  30. [30]
    JDK 21 - OpenJDK
    JDK 21. This release is the Reference Implementation of version 21 of the Java SE Platform, as specified by JSR 396 in the Java Community Process.JEPs in JDK 21 integrated... · JEP 430: String Templates · Structured Concurrency<|control11|><|separator|>
  31. [31]
  32. [32]
  33. [33]
  34. [34]
    JDK 22
    ### Summary of JDK 22 Key Features/JEPs
  35. [35]
  36. [36]
    JEP 454: Foreign Function & Memory API - OpenJDK
    Jun 22, 2023 · This JEP proposes to finalize the FFM API with further small refinements based upon continued experience and feedback. In this version we ...
  37. [37]
    JDK 23 - OpenJDK
    JDK 23 reached General Availability on 17 September 2024. Production-ready binaries under the GPL are available from Oracle; binaries from other vendors will ...
  38. [38]
  39. [39]
    JDK 24 - OpenJDK
    This release is the Reference Implementation of version 24 of the Java SE Platform, as specified by JSR 399 in the Java Community Process.
  40. [40]
  41. [41]
    JDK 25 - OpenJDK
    The release was produced using the JDK Release Process (JEP 3). Features. 470: PEM Encodings of Cryptographic Objects (Preview). 502: Stable Values (Preview).JEP 506: Scoped Values · JEP 502: Stable Values · JEP 505: Structured...
  42. [42]
    The OpenJDK's plans for Java in 2025 - InfoWorld
    Jan 23, 2025 · Java enhancement plans for 2025 range from improving performance in the foreign function and memory (FFM) API, to working on ahead-of-time (AOT) code ...
  43. [43]
    The Clock Is Ticking: OpenJDK 11 and 8 Near End of Life - TuxCare
    Jul 7, 2025 · OpenJDK 8 and 11 hit end of life in July 2025. Learn what this means, and how to stay protected with free extended support from TuxCare.Java 11 and 8 Are Still... · What Happens after... · Why Many Java Runtimes...
  44. [44]
    Oracle Releases Java 25
    Sep 16, 2025 · New release delivers 18 JDK Enhancement Proposals to improve the Java language, expand its AI capabilities, and help developers accelerate ...Missing: 2021-2025 | Show results with:2021-2025
  45. [45]
    OpenJDK: Java Development Kit Archives - Azul Systems
    The Java Development Kit (JDK) is a cross-platform environment for developing Java applications, providing tools and libraries to build, test, and maintain ...
  46. [46]
    HotSpot Runtime Overview - OpenJDK
    Adaptive optimization solves the problems of JIT compilation by taking advantage of an interesting program property. Virtually all programs spend the vast ...
  47. [47]
    HotSpot Glossary of Terms - OpenJDK
    A JIT compiler may create machine code shortly before the first invocation of a Java method. Hotspot compilers usually allow the interpreter ample time to "warm ...
  48. [48]
    [PDF] HotSpot Virtual Machine Garbage Collection Tuning Guide
    In support of this diverse range of deployments, the Java HotSpot VM provides multiple garbage collectors, each designed to satisfy different requirements. Java ...
  49. [49]
    ZGC - OpenJDK
    ZGC is a scalable low-latency garbage collector capable of handling heaps ranging from 8MB to 16TB in size, with sub-millisecond max pause times.
  50. [50]
    Shenandoah - OpenJDK
    Shenandoah is an ultra-low pause time garbage collector that reduces GC pause times by performing more garbage collection work concurrently with the running ...
  51. [51]
    AArch64 Port Project - OpenJDK
    The goal of this Project is to provide a full-featured and certified version of OpenJDK on the Linux/AArch64 platform which can be integrated into JDK 8.
  52. [52]
    The Java programming language Compiler Group - OpenJDK
    The javac compiler source code is available in the OpenJDK repositories, at https://git.openjdk.org/. The mainline sources are in https://git.openjdk.org/jdk.
  53. [53]
    Processing Code - OpenJDK
    Annotation processing is a standard feature of the Java SE platform, using standard APIs. Annotation processors are executed by javac while compiling code, and ...
  54. [54]
    JEP 222: jshell: The Java Shell (Read-Eval-Print Loop) - OpenJDK
    May 16, 2014 · The JShell API and tool will provide a way to interactively evaluate declarations, statements, and expressions of the Java programming language ...
  55. [55]
    java.base (Java SE 22 & JDK 22) - Oracle Help Center
    The `java.base` module defines the foundational APIs of the Java SE Platform.
  56. [56]
    Core Libraries Group - OpenJDK
    Mar 31, 2009 · Core libraries are classes used by many parts of the JDK, close to the VM, and include fundamental classes like String, Math, and Enum.
  57. [57]
    IBM Joins OpenJDK - InfoQ
    Oct 11, 2010 · The modular approach used by the Java implementation for the Apache Harmony project might be one aspect carried forward to OpenJDK. Only a week ...
  58. [58]
    Building the JDK
    **Summary:**
  59. [59]
    JEP 261: Module System - OpenJDK
    Oct 23, 2014 · JEP 261 implements the Java Platform Module System, making modules a fundamental component of Java, with changes to the language, VM, and APIs.
  60. [60]
    OpenJFX Project - OpenJDK
    OpenJFX is the open source home of JavaFX development. The goal of OpenJFX is to build the next-generation Java client toolkit.
  61. [61]
    JEP 320: Remove the Java EE and CORBA Modules - OpenJDK
    Oct 11, 2017 · Remove the Java EE and CORBA modules from the Java SE Platform and the JDK. These modules were deprecated in Java SE 9 with the declared intent to remove them ...
  62. [62]
    JEP 372: Remove the Nashorn JavaScript Engine - OpenJDK
    Jan 10, 2020 · JEP 372 removes the Nashorn JavaScript engine, APIs, and jjs tool, which were deprecated in Java 11. The engine was challenging to maintain due ...Missing: JSR | Show results with:JSR
  63. [63]
    GraalVM
    ### Summary: GraalVM Integration with OpenJDK for Native Compilation
  64. [64]
    Skara - OpenJDK
    The goal of this Project is to investigate alternative SCM and code review options for the JDK source code, including options based upon Git rather than ...
  65. [65]
    JEP draft: JDK Source Structure - OpenJDK
    Mar 15, 2022 · The top-level directory of the JDK repository contains the following directories: src; test; make; doc; bin. The top-level directory also ...
  66. [66]
    JEP 200: The Modular JDK - OpenJDK
    Jul 22, 2014 · Its primary goals are to make implementations of the Platform more easily scalable down to small devices, improve security and maintainability, ...Missing: benefits | Show results with:benefits
  67. [67]
    Project Jigsaw: JDK modularization - OpenJDK
    The jigsaw module system can be started with just the base module. Furthermore, it allows applications to be installed with just those components of the JDK ...Missing: benefits | Show results with:benefits
  68. [68]
    JDK Updates Project - OpenJDK
    JDK Update Releases. The goal of this Project is to develop updates for the JDK Project. This Project is sponsored by the Build Group.JDK 21u · JDK11u · JDK 24u · JDK 17u
  69. [69]
    Java to Move to 6-Monthly Release Cadence - InfoQ
    Sep 6, 2017 · The new release schedule is intended to begin immediately after the release of Java 9, with the next release of Java to come in early 2018.
  70. [70]
    Oracle JDK - endoflife.date
    Oct 23, 2025 · Check end-of-life, release policy and support schedule for Oracle JDK.<|control11|><|separator|>
  71. [71]
    What is Java LTS and Why Does It Matter? - JRebel
    Aug 29, 2023 · Java 21 is scheduled to receive premier support through September 2028 and extended support through September 2031.
  72. [72]
    OpenJDK Life Cycle and Support Policy - Red Hat Customer Portal
    Oct 15, 2025 · All builds of OpenJDK delivered by Red Hat before 1 July 2025 have been TCK certified. OpenJDK 8 builds after that date are not TCK certified.
  73. [73]
    Java Support Roadmap & Lifecycle - Azul Systems
    For LTS releases, Azul provides at least 8 years of access to bug fixes, security updates, and other fixes as needed (“Production Support”) plus 2 years of ...
  74. [74]
    OpenJDK Vulnerability Advisories
    We publish fixes to vulnerabilities in OpenJDK source code four times per year, in January, April, July, and October, on the third Tuesday of the month.2025/04/15 · 2024/07/16 · 2025/01/21 · 2022/04/19
  75. [75]
  76. [76]
    Java 8 release changes
    It is not recommended that this JDK (version 8u451) be used after the next critical patch update scheduled for July 15, 2025.
  77. [77]
    JEP 0: JEP Index - OpenJDK
    Aug 24, 2011 · This JEP is the index of all JDK Enhancement Proposals, known as JEPs. See JEP 1 for an overview of the JEP Process. Process JEPs. P, Act ...JEP 522: G1 GC · JEP draft: Null-Restricted · JEP 470: PEM Encodings of...Missing: governance coordination
  78. [78]
    Governing Board - OpenJDK
    The Governing Board oversees the structure, operation, and overall health of the OpenJDK Community. It upholds and maintains the Bylaws, resolves procedural ...Missing: coordination | Show results with:coordination
  79. [79]
    What's New in JDK 8 - Oracle
    This document summarizes features and enhancements in Java SE 8 and in JDK 8, Oracle's implementation of Java SE 8.
  80. [80]
    JDK 11 - OpenJDK
    Sep 25, 2018 · JDK 11 is the open-source reference implementation of version 11 of the Java SE Platform as specified by by JSR 384 in the Java Community Process.
  81. [81]
    JDK 9 - OpenJDK
    Sep 21, 2017 · The goal of this Project was to produce an open-source reference implementation of the Java SE 9 Platform as defined by JSR 379 in the Java Community Process.
  82. [82]
    JDK 14 - OpenJDK
    JDK 14 is the open-source reference implementation of Java SE 14, released on March 17, 2020, with features like Pattern Matching for instanceof and Records.
  83. [83]
    JEP 411: Deprecate the Security Manager for Removal - OpenJDK
    Apr 5, 2021 · To move the Java Platform forward, we will deprecate the Security Manager for removal in concert with the legacy Applet API (JEP 398).<|control11|><|separator|>
  84. [84]
    Download the Latest Java LTS Free
    ### Summary: OpenJDK's Role and TCK Compliance in Java SE Reference Implementation
  85. [85]
    Consolidated JDK 25 Release Notes - Oracle
    Sep 16, 2025 · Critical patch updates, which contain security vulnerability fixes, are announced one year in advance on Critical Patch Updates, Security Alerts ...
  86. [86]
    How to download and install prebuilt OpenJDK packages
    Oracle's OpenJDK JDK binaries for Windows, macOS, and Linux are available on release-specific pages of jdk.java.net as .tar.gz or .zip archives.<|separator|>
  87. [87]
    OpenJDK JDK 25.0.1 General-Availability Release - Java.net
    This page provides production-ready open-source builds of the Java Development Kit, version 25, an implementation of the Java SE 25 Platform under the GNU ...
  88. [88]
    IcedTea Project - OpenJDK
    IcedTea aims to make it easier for users to build and deploy OpenJDK, especially when using Free tools. IcedTea is the variant of OpenJDK currently distributed ...Missing: history Timsort patent
  89. [89]
    Experimental Build Repository at icedtea.classpath.org
    Jun 7, 2007 · ... build an OpenJDK binary from source code, you must first download and install one or more of the following files from which the build ...Missing: compatible Timsort patent
  90. [90]
    IcedTea's OpenJDK Passes Java Test Compatibility Kit - Slashdot
    Jun 19, 2008 · In the OpenJDK project we have been removing the encumbered code and have whittled down the nonfree part of OpenJDK's source tree to 0%.
  91. [91]
    OpenJDK and the IcedTea Project - Red Hat
    The IcedTea Project made use of previous work developed under the GNU Classpath Project which had been independently driving towards a free and open ...Missing: history builds Timsort patent
  92. [92]
    Eclipse Temurin | Adoptium
    Eclipse Temurin offers high-performance, cross-platform, open-source Java runtime binaries that are enterprise-ready and Java SE TCK-tested for general use ...
  93. [93]
    Production-ready distribution of OpenJDK – Amazon Corretto
    Amazon Corretto is a no-cost, multiplatform, production-ready distribution of the Open Java Development Kit (OpenJDK) ... Download Corretto 25 · Download ...FAQs · Amazon Corretto 17 · Amazon Corretto 8 Installation... · 21
  94. [94]
    Amazon Corretto 25 is now generally available - AWS
    Sep 17, 2025 · Amazon Corretto is a no-cost, multi-platform, production-ready distribution of OpenJDK. You can download Corretto 25 for Linux, Windows, and ...Missing: optimized | Show results with:optimized
  95. [95]
    Microsoft Build of OpenJDK
    The Microsoft Build of OpenJDK is a new no-cost long-term supported distribution and Microsoft's new way to collaborate and contribute to the Java ecosystem.
  96. [96]
    Support roadmap for the Microsoft Build of OpenJDK
    Long-Term Support (LTS) releases of the Microsoft Build of OpenJDK are also tested against the Oracle's Java Technology Compatibility Kit (TCK).
  97. [97]
    Java 8, 11, 17, 21, 25 Download for Linux, Windows and macOS
    Click here to download the Azul Zulu Builds of OpenJDK for Java 8, 11, 17, 21, 25 for Linux, Windows and macOS. Also download Azul Platform Prime.Azul builds of OpenJDK Terms... · Azul Platform Prime Customer... · Azul FTP
  98. [98]
    Java 8 end of life: What Are Your Options In 2025? - TuxCare
    Jul 20, 2025 · OpenJDK 8 is approaching end of life, and some vendors have already ended free support for it. Migrating to newer Java LTS versions like ...
  99. [99]
    What is Amazon Corretto 25?
    Amazon Corretto is a no-cost, multiplatform, production-ready distribution of the Open Java Development Kit (OpenJDK). Corretto comes with long-term support ...
  100. [100]
    JVM Tuning on AWS: Faster Java, Lower Cloud Costs - Das Meta
    Learn high-impact tactics to cut AWS bills and speed up Java apps. From JVM choices to Graviton, this guide helps CTOs optimise cost and performance.
  101. [101]
    About the Microsoft Build of OpenJDK
    Apr 4, 2023 · It includes Long-Term Support (LTS) binaries for Java 11 and Java 17 on x64 server and desktop environments on macOS, Linux, and Windows ...
  102. [102]
    OpenJDK Bylaws
    The OpenJDK bylaws aim to foster open, transparent, and meritocratic collaboration. The community is structured into Groups and Projects, managed by the  ...
  103. [103]
    Legal Documents - OpenJDK
    GNU General Public License, version 2, with the Classpath Exception · Assembly Exception · Designated Exception Modules. Historical. The OpenJDK Charter.
  104. [104]
    JEP 1: JDK Enhancement-Proposal & Roadmap Process
    Jun 23, 2011 · This document defines a process for collecting, reviewing, sorting, and recording the results of proposals for enhancements to the JDK and for related efforts.
  105. [105]
    OpenJDK Census
    The census is the official record of the structure of the OpenJDK Community. It lists the active Groups, Projects, and Contributors and the relationships ...
  106. [106]
    microsoft-openjdk - Homebrew Formulae
    microsoft-openjdk. Install command: brew install --cask microsoft-openjdk. Name: Microsoft Build of OpenJDK. OpenJDK distribution from Microsoft.
  107. [107]
    Adoptium: Home
    Eclipse Adoptium provides prebuilt OpenJDK binaries from a fully open source set of build scripts and infrastructure.
  108. [108]
    Java versions in Android builds | Android Studio
    Whether your source code is written in Java, Kotlin, or both, there are several places you must choose a JDK or Java language version for your build.
  109. [109]
    An update on Java 17+ adoption - Spring
    Mar 28, 2022 · Spring Framework 6 and Spring Boot 3 will be released on a Java 17+ baseline in late 2022, ready for adoption in a JDK 17 LTS ecosystem.
  110. [110]
    State of Java Survey Confirms Majority of Enterprise Apps Are Built ...
    Jan 28, 2025 · CHART - 2025 State of Java Survey - 88% of Oracle Java users are considering 88% of Oracle Java users are considering a switch to another Java ...Missing: committers | Show results with:committers
  111. [111]
    Installing and using Red Hat build of OpenJDK 21 on RHEL
    Aug 15, 2025 · Red Hat build of OpenJDK 21 can be installed on RHEL using `yum` or an archive. It's an open source Java environment for developing and running ...
  112. [112]
    Hadoop Java Versions - Apache Software Foundation
    Jul 9, 2019 · Version 2.7 and later of Apache Hadoop requires Java 7. It is built and tested on both OpenJDK and Oracle (HotSpot)'s JDK/JRE.
  113. [113]
    Users Migrating Off Oracle Java, Citing Cost, Uncertainty and Audit ...
    Aug 15, 2024 · Two-thirds of organizations that switched from Oracle Java to OpenJDK distributions were able to save costs. The Java professionals surveyed ...
  114. [114]
    Slim modular Java 9 runtime Docker image with Alpine Linux - JDriven
    Nov 5, 2017 · It is now possible to construct a stripped-down Java Runtime, containing the minimum set of required modules. This allows us to create slim Docker containers ...