Serguey Asael Shinder: CheerpJ 5.0 runs Java 21 and 25 in the browser with the full JDK and an experimental WasmGC
Leaning Technologies has released CheerpJ 5.0, its OpenJDK distribution for the browser in WebAssembly. The announcement, posted on foojay by Alessandro Pignotti on 3 November, names support for Java 21 and Java 25 as the headline. Together with Java 8, 11 and 17, which CheerpJ already supported, it completes the roadmap the team published in February 2025, whose goal was parity with the latest Java LTS by the end of 2026. (https://foojay.io/today/cheerpj-5-java-21-25-in-the-browser/)
The second change is what gets shipped. CheerpJ used to include only the JRE packages of OpenJDK to keep downloads small; after work on its I/O layer it now ships the full JDK for every supported version, so javac and jshell run client-side. The post points to education as an obvious use.

The third is a new execution engine, still experimental. In the default engine Java objects are JavaScript objects and hot code is compiled to JavaScript; in the new one they become WasmGC objects and hot code is compiled to WebAssembly, with memory still managed by the browser's garbage collector. The team expects faster start-up and run time, and says the engine simplifies calling native JNI libraries compiled to Wasm, which matters for LWJGL 3 and therefore for modern Minecraft. Stabilising it is the focus for the coming months; it is due to be production-ready with CheerpJ 6.0 in early 2027.
CheerpJ works at the bytecode level on unmodified applications, with reflection, runtime class generation, custom class loaders and threads, and emulates file systems, networking over Tailscale, clipboard, audio, printing and window management. The post says its main users so far run legacy business applications, Oracle Forms and E-Business Suite above all.
What it means for Java teams: for the first time a current LTS can be the target of a browser deployment rather than a version you have to backport to. The practical test is still start-up time and download size for your own application, and the WasmGC engine, which is where the performance claims sit, is explicitly not production-ready yet.