openjdk/jdk

Developer Tools

The upstream source of the Java Development Kit, for people who need to build the JDK itself or track language changes.

23,475
6,539
Java
GPL-2.0
8 years old

This repository is the main-line source tree of the JDK, not a package you install to write Java applications. Most Java developers should install a distribution and never touch it. It becomes relevant when your work requires building the JDK, testing JVM changes, or following what is about to land in the next release.

The problem

A normal Java developer wants a working compiler and runtime, and gets that by downloading a build. Someone working on the JDK's own behavior wants to reproduce a bug in HotSpot, change a library class, or try a language feature that exists only on master, such as the preview value objects merged into the source. The existing path assumes a released artifact, so there is no shipped binary for that unreleased behavior. The step that changes is the source: you build the JDK from this tree and then use the resulting runtime and compiler in place of an installed one. The result is a JDK matching an exact commit, which is what a change proposal or bug report needs.

What's different

What distinguishes this repository is that it is the reference implementation and the shared workbench for the platform. Language and library changes arrive through JDK project pages and are discussed in public bug tracking; the README itself is mainly a signpost to the online build documentation and the community site.

The mechanism that matters practically is that you build the full platform from source rather than consuming a binary. That gives you the freedom to inspect and patch any component, from class libraries to the virtual machine, and to run the resulting JDK through its own test suites. The trade-off is that the source moves constantly and compatibility of intermediate states is not guaranteed. A build from master is a development snapshot, not a release you should distribute; anything you depend on can change in the next commit. Only the feature work is preview or incubator where documented, so behavior you observe in a local build may not exist in any final release.

Who should try it

This fits platform engineers, JVM and library contributors, and tooling authors who need to test against unreleased behavior — the value-object work is an example, and a 2026 Hacker News commenter noted it was the first part of that effort with more to come in the same thread. It also fits people preparing a bug report who need an exact source revision to reproduce against.

It does not fit ordinary application developers, students, or teams building and deploying services. For them, the build instructions describe a large native toolchain compilation that buys nothing a released JDK does not already provide. Nor is this the place to learn Java; a starter guide or an installed JDK is a better use of time.

Requirements and limitations

Building this repository is the dominant cost. It requires a suitable native toolchain and substantial local resources, and the build documentation is the authority on supported configurations; there is no documented shortcut that produces a usable JDK here. The build is also long-running, so iteration on a single change is slower than editing an application.

The ongoing cost is tracking a moving target. The repository follows JDK main-line development, and the project site describes the release cadence rather than pinning one stable branch. You need to maintain your own build scripts and expect to rebuild after upstream changes, and you must separate your own local patches from upstream so they can be reapplied. Licensing is GPL-2.0, which matters if you plan to redistribute a built runtime rather than use it internally.

HotRepo's take

HotRepo recorded this repository once, on the 2026-10-27 daily board, at 23,476 stars with a gain of 10 that day — a single snapshot, so persistence of that board interest cannot be judged. The more concrete signal is discussion: the thread about preview value objects drew 237 points and 175 comments, and one commenter described being pleased by how the language kept evolving in that discussion. Nearby comments emphasize incremental, backward-compatible rollout, which is the right lens for this repository: it is where those steps land first. Verify the build requirements for your platform before committing to a local toolchain, and treat any master build as a development snapshot, not a release.

Hacker News

JEP 401: Value Objects (Preview) merged to OpenJDK master
▲ 237 · 175 comments · July 31, 2026
AVX512 intrinsics for JDK’s Arrays.sort methods
▲ 158 · 152 comments · May 31, 2023
Compact Object Headers in Java 24
▲ 14 · 0 comments · November 9, 2024

Written by AI from the project's README, updated October 27, 2026. The project's own docs are the source of truth.