mrkeyoor.com_
Tue 01 Sept 17:41 UTC
Dev Toolsevaluationupdated 26 Aug 2026

jdk review

OpenJDK's `jdk` repository is the mainline source for the Java Development Kit, including the HotSpot virtual machine, Java class libraries, compiler tools, and platform utilities. It is where JDK engineers build and test the next mainline implementation, not the easiest way for an application developer to install Java.

+27stars / 7d
Verdict

Our OpenJDK run stopped after 5 seconds because direct execution of ./configure was denied, so it says nothing about whether the 13-million-line JDK builds or passes tests. Use this repository to change the Java platform, with the boot JDK, native compiler, disk, and tiered testing that work demands. If you only need Java for an application, install a maintained binary distribution and leave the 694 MB source tree alone.

We ran it

Lab card: what happened when we ran jdkScreenshot of jdk (github.com/openjdk/jdk)
Install✗ · 5s
Build
Repo70924 files~13,055,178 lines of source · 694 MB · 7 CI workflows · tests dir

Answers from our run

Does jdk build from source?

The dependency install failed, and the project has no separate build step. We cloned commit f40a2c3 into a clean Debian container with 3 CPUs and no project-specific setup.

Who should not use jdk?

Application developers who only need Java to compile or run software: a vendor JDK binary avoids a 694 MB source checkout and native toolchain setup.

What are the alternatives to jdk?

Eclipse OpenJ9, Graal, Eclipse Temurin Build. Our OpenJDK run stopped after 5 seconds because direct execution of `.

Setup2/5Requires a boot JDK, native toolchain, libraries, and staged tests
Docs5/5Exact platform, toolchain, configure, build, and test guidance
Community5/5Same-day mainline pushes and active specialist pull requests
Maturity5/5Mainline JDK implementation with disciplined tiered verification

Discussed on

  1. hnJEP 401: Value Objects (Preview) merged to OpenJDK master237 points
  2. hnAVX512 intrinsics for JDK’s Arrays.sort methods158 points
  3. hnCompact Object Headers in Java 2414 points
  4. hnSupport for UUID Version 7 (UUIDv7) added to Java 265 points
  5. hnPull Request: Java language implementation of value classes and objects4 points

Who it’s for

JVM and Java platform engineers changing HotSpot, core libraries, or JDK tools.
Platform vendors building their own tested JDK distribution.
Contributors working against OpenJDK's mainline review and test process.
Researchers who need to modify garbage collection, runtimes, compilers, or Java APIs.

Who it’s NOT for

Application developers who only need Java to compile or run software: a vendor JDK binary avoids a 694 MB source checkout and native toolchain setup.
Contributors without a suitable boot JDK and native compiler: the build guide requires both before configure can produce a build.
Windows developers wanting a normal Visual Studio-only project: OpenJDK also requires a POSIX layer such as Cygwin, MSYS2, or WSL, and its guide says Cygwin has received the most real-world testing.
Teams expecting a small, fast universal test command: the project uses tiered jtreg, gtest, microbenchmark, and special suites tied to a configured JDK image.
Anyone treating GitHub Releases as the project's health record: the repository has no latest GitHub release response, while mainline pushes and pull requests were active on August 26, 2026.

Setup reality

Our sandbox cloned commit f40a2c3, a 694 MB checkout with 70,924 files and about 13,055,178 lines of source. The install step failed after 5 seconds with exit 126 because ./configure returned Permission denied. The run stopped there, so it produced no build or test result.

The documented route is bash configure, then make images, with a suitable boot JDK, native compiler, GNU Make, Bash, and platform libraries. On x86, the guide advises 2 to 4 cores, 2 to 4 GB of RAM, and at least 6 GB of free disk.

Windows needs Cygwin, MSYS2, or WSL in addition to Microsoft Visual Studio. Testing begins with make test-tier1; deeper tiers, GUI tests, gtest, and microbenchmarks have their own requirements. This is a platform build environment, not a package install.

This is a 13-million-line platform, not a Java installer

The OpenJDK checkout we measured contains the HotSpot virtual machine, Java libraries, compilers, launchers, serviceability tools, and native platform code in one source tree. That scope explains why the repository is useful to JDK implementers and excessive for ordinary Java development. An application team needs a supported binary. A platform team may need to change garbage collection, add an intrinsic, revise a class-library API, or validate a port across the VM and libraries together.

The README is only 429 bytes because it points directly to the build manual, the OpenJDK community site, and the separate JDK bug tracker. That is terse but honest. The real documentation assumes its reader is building a platform: it covers bootstrapping, native compilers, external libraries, cross compilation, build variants, generated images, and test selection. Reading that manual before cloning saves more time than any abbreviated third-party recipe.

An x86 build asks for at least 6 GB free

The official build guide advises 2 to 4 cores, 2 to 4 GB of RAM, and at least 6 GB of free disk for x86. AArch64 guidance starts higher at 8 cores and 8 GB of RAM. The project strongly recommends an SSD because the build is disk intensive. Those are entry conditions, not performance promises, and broader configurations or repeated builds can require more.

Bootstrapping is the first unusual requirement. Building major JDK version N generally needs a suitable JDK from an earlier release, with the guide describing an N minus 1 rule of thumb and exceptions early in a release cycle. The build also needs a supported C or C++ toolchain, GNU Make, Bash, and system libraries such as FreeType, fontconfig, CUPS, X11, or ALSA depending on the platform. configure checks these inputs before compilation.

What happened when we ran it

Our sandbox cloned commit f40a2c3 into an unprivileged container with 3 CPUs and 8 GB of RAM. The checkout was 694 MB, with 70,924 files and about 13,055,178 lines of source. The install phase attempted to execute ./configure and failed after 5 seconds with exit 126. The complete diagnostic supplied at the end was ./configure: Permission denied.

That failure happened before configuration, compilation, or testing. We therefore have no build duration, package count, test count, or audit result for this repository, and we will not manufacture one. The documented command is bash configure, followed by make images; our generic runner used direct execution instead. That difference identifies where the harness stopped, but it does not prove why the file lacked executable permission in that checkout.

The repository has 7 CI workflow files and a test directory. Neither signal changes our result: our run did not reach them. A proper contributor check begins by producing a configured JDK image, then uses the test targets relevant to the change. The 5-second permission error is a setup finding, not a verdict on HotSpot or Java test health.

Tier 1 is the minimum contributor test

OpenJDK's testing guide makes make test-tier1 the basic local target. Contributors are expected to test the changed area and run at least tier 1. Higher tiers add broader, slower, less stable, specially configured, or GUI-dependent cases. The common interface can dispatch jtreg suites, HotSpot gtest, JMH microbenchmarks, and a few special test families. There is no useful single count to quote without naming a configuration and selection.

Windows adds another layer. Microsoft Visual Studio supplies the native compiler, but the build also requires a POSIX environment. Cygwin, MSYS2, and both WSL generations are supported, with the guide describing Cygwin as the most tested path. WSL can target Windows or Linux, but the boot JDK and source location must match the target's accessibility. Testing under WSL is described as not fully functional, a real reason to avoid choosing it blindly for contributor work.

410 GitHub items are only part of project health

The repository was pushed on August 26, 2026, and GitHub reported 416 open issues and pull requests combined. The current activity we fetched included work on Vector API behavior, value objects, garbage collection, cryptographic intrinsics, desktop integration, and platform tests. Most user-visible bug tracking lives at bugs.openjdk.org, so the GitHub count should not be mistaken for the full JDK defect backlog.

GitHub's latest-release endpoint returned no release for this repository. That is not abandonment evidence. OpenJDK uses its own release processes and distribution ecosystem, while same-day mainline changes show active development. Judge this tree as a platform source project: it has demanding prerequisites, precise build documentation, and layered tests. For users, choose a vendor binary. For JDK engineers, few substitutes offer the same direct path into Java's reference open-source implementation.

Alternatives

ProjectWhat it isPick it when
Eclipse OpenJ9An alternative Java virtual machine used with OpenJDK class libraries.pick this instead when you specifically want to evaluate a different JVM implementation and runtime profile.
Graal gh↗Compiler technology behind GraalVM, including a Java JIT compiler and language runtime work.pick this instead when Graal compilation, polyglot runtimes, or native-image-related research is the main goal.
Eclipse Temurin BuildBuild and release tooling for producing Eclipse Temurin OpenJDK binaries.pick this instead when your goal is repeatable distribution builds rather than changing mainline JDK source.

What people are saying

  1. [velocity-scout] openjdk/jdk
  2. [hackernews] JEP 401: Value Objects (Preview) merged to OpenJDK master

Sources

  1. OpenJDK JDK README
  2. OpenJDK build guide
  3. OpenJDK testing guide
  4. OpenJDK JDK project

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →