This article refers to CheerpJ 4.1. The current release is CheerpJ 4.3.

Highlights:

  • CheerpJ 4.1 is now generally available
  • Preview of Java 17 support, months ahead of our roadmap
  • SSL and audio support in Java 11
  • Improved networking stack and performance optimisations
  • Better mobile usability for Swing and AWT applications
  • Full release notes available here

What is CheerpJ?

CheerpJ is a full WebAssembly-based Java platform for modern browsers. It comes with a complete OpenJDK runtime and an emulation layer that provides file system access, networking and other OS-level features. It runs entirely client-side, with no Java installation, plugin or server-side component.

A month ago we released CheerpJ 4.0, the first release to support more than one version of Java. Today we release CheerpJ 4.1.

Java 17, earlier than planned

Our roadmap placed Java 17 later in the year. Progress has been faster than expected, so CheerpJ 4.1 ships a preview of Java 17 support today. The preview lets developers start testing modern Java code in the browser now, and their feedback will shape stable Java 17 support in CheerpJ 5.0.

A more stable Java 11

Java 11 support in CheerpJ 4.0 was tested by the developer community on a wide range of applications and libraries. That testing found several critical bugs, which are fixed in this release. CheerpJ 4.1 also adds two features that Java 11 applications were missing:

  • SSL support
  • Audio support

Networking, performance and mobile

CheerpJ 4.1 also improves several subsystems shared by every Java version:

  • An improved networking stack
  • Performance optimisations in the runtime
  • Better usability on phones and tablets, for both Swing and AWT applications

The mobile improvements build on the input overhaul in CheerpJ 4.0, and make it practical for the first time to offer complex Java applications to users on tablets.

Demos

The release post on our technical blog includes two demos. RuneLite runs in the browser in Java 11 mode. Browsercraft runs a historical, unmodified version of Minecraft, using WebAssembly JNI modules for the LWJGL native code and the gl4es OpenGL layer.

Technical resources

The complete technical release notes for CheerpJ 4.1 are on our technical blog. The changelog lists every change, and the documentation has guides, examples and tutorials.