How CheerpJ Works
CheerpJ is a WebAssembly-based Java Virtual Machine for the browser. This means Java applications can be executed from the browser with no Java installations. Amazing, right? but… How does it work?
Full Java Runtime
CheerpJ comes with a full OpenJDK runtime, providing full compatibility with any Java application.
Full JVM in WebAssembly
CheerpJ runs Java bytecode thanks to a WebAssembly Just-In-Time compiler.
Secure by Design
CheerpJ operates within the browser sandbox, using safe and secure Web APIs for system access.
CheerpJ runs in any modern browser using standard Web technologies, particularly WebAssembly, JavaScript, and HTML5. It can either be integrated into a web page like any JavaScript library, by simply adding a <script> tag, or via a browser extension.
CheerpJ is very simple to use as it exposes an API for executing standalone Java applications, applets, Java Web Starts, and Java libraries — entirely in the browser. One of the strengths of CheerpJ is that it works directly with Java byte code/JARs, meaning no need to modify or have access to the application's source code.
CheerpJ assets are static, which makes it easily self-hostable, and we provide a cloud version under the CheerpJ Community Licence (free to use for personal projects and technical evaluations).
Key Features
Java on the browser
CheerpJ is a Java Virtual Machine in WebAssembly, that enables modern browsers to run Java 8, Java 11, Java 17 (preview), client-side.
Full Runtime
CheerpJ comes with a full OpenJDK runtime environment, ensuring that existing applications "will just work". This includes Java Swing, AWT, and any other runtime component.
Scalable JNI Architecture
CheerpJ has extensive native method compatibility, and allows developers to ship custom natives in JavaScript / WebAssembly, providing a viable path for running complex Java applications.
Networking and System
CheerpJ provides a full networking stack (HTTP(s), TCP/IP), as well as support for file access, clipboard, audio, printing, and more.
Java–JavaScript Interoperability
CheerpJ provides multiple mechanisms for Java and JavaScript to interoperate.
Full Classloader Support
CheerpJ gives full control to the appropriate Classloader for class resolution, including application-provided ones. This ensures full compatibility with the most complex applications.
Effortless Deployment
CheerpJ does not need access to the source code at all, operating at the level of Java bytecode. Third-party libraries, dependencies and obfuscated code pose no issue.
Legacy Modernization
With CheerpJ, you can modernize access to legacy Java Applets and Applications on modern browsers, removing the requirement for IE, Edge IE mode, and for a local Java installation.
Web Development
CheerpJ powers the browser with a full Java environment, so developers can combine Java components with web-native applications.
Choose Your Tool
CheerpJ Core
The main CheerpJ tool for developers. A JVM / OpenJDK distribution in JavaScript and WebAssembly. Runs full Java apps and libraries in the browser.
Learn more →CheerpJ JNLP Runner
An end-user tool to run Java Web Start apps in Chrome or Edge — without installing Java locally. Perfect for legacy enterprise applications.
Learn more →CheerpJ Applet Runner
An end-user tool to run Java Applets on modern browsers. Works instantly on Chrome or Edge, no code changes required.
Learn more →Request a demo
Schedule a free demo with our team to learn how CheerpJ can help address your Java requirements. Fill in the form or book a demo directly here.
Request a demo ›