WebAssembly JVM: Running Large Java Applications in Modern Browsers Without Plugins or Java Installation
Leaning Technologies has introduced CheerpJ 3.0, a significant advancement in WebAssembly-based JVM technology tailored for modern web browsers. This latest release represents a comprehensive reimagining of CheerpJ, aimed at supporting “very large” Java applications such as IntelliJ IDEA and Minecraft, marking it as the long-term supported successor to CheerpJ 2.3.
Drawing from seven years of experience in both enterprise and community environments, as well as insights gained from projects like CheerpX for x86-to-WebAssembly virtualization, CheerpJ 3.0 stands out for its capability to execute unmodified Java applications directly within web browsers, eliminating the need for plugins or local Java installations. The technology achieves this by compiling Java bytecode into JavaScript via a JIT compiler and includes a complete, unmodified build of OpenJDK.
It also incorporates a virtualized system layer, offering support for virtualized file systems and networking via Tailscale. Key features include seamless operation from unmodified JAR files without preprocessing, robust support for reflection, class loaders, and interoperability with JavaScript environments.
While currently supporting Java 8, future updates planned for 2024 aim to extend compatibility to newer Java LTS versions, starting with Java 11, with aspirations to align with JDK 21 and subsequent releases to ensure ongoing compatibility and performance enhancements for Java developers leveraging web-based applications.
This expanded version provides a more detailed exploration of CheerpJ 3.0’s capabilities, technical underpinnings, and strategic roadmap, highlighting its significance for developers aiming to deploy Java applications directly within web browsers using modern technologies.
Replacing 2022’s CheerpJ 2.3 as Leaning Technologies’ long-term supported version, CheerpJ 3.0 draws on lessons from seven years of enterprise and community use of CheerpJ, and from other WebAssembly-based projects such as CheerpX, an x86-to-WebAssembly virtualization system.
CheerpJ compiles Java bytecode into JavaScript using a JIT (just-in-time) compiler for Java bytecode. It includes a complete and unmodified build of OpenJDK, along with a virtualized system layer including virtualized file systems and virtualized networking support using Tailscale