Mar 29, 2018: CheerpJ 1.0 is now available! Read our release announcement here.
CheerpJ is the Java compiler for Web applications
convert any Java application and library to a browser-based Web application

How?

CheerpJ can convert Java bytecode into HTML5 / JavaScript thanks to:

> an ahead-of-time compiler from Java bytecode to JavaScript
> a web-based OpenJDK Java runtime environment (in JavaScript)
> native support for reflection and dynamic class generation

What is CheerpJ?

> CheerpJ converts Java applications or libraries into JavaScript
> Works on bytecode, does not require access to the source code
> Compatible with 100% of Java including reflection and dynamic classes
> Existing Java archives can be converted to Web applications effortlessly
> Supports multi-threading, concurrency (with WebWorkers), audio, printing

Getting Started

It's easy to get started with CheerpJ and convert your first Java application:
> Download and install CheerpJ for your platform.
> Follow the getting started tutorial.
> Read our Documentation for further reference and more examples.
> If you need assistance getting up to speed, you can find us on Gitter.
CheerpJ is the only tool available on the market that can convert 100% of Java SE into web applications that can run on the browser with no need of plugins.

Features

Supports 100% of Java SE

CheerpJ supports the entirety of Java SE, including:
> Reflection
> Proxy classes
> Multi-threading
Virtually any Java code base can be converted to JavaScript with CheerpJ.

Full runtime environment

CheerpJ includes a full Java runtime:
> Based on a full porting of OpenJDK
> 100% runtime support including Swing
> Filesystem, Audio, Printing support

Concurrency

CheerpJ allows to develop concurrent (parallel) applications:
> Full support for concurrency using WebWorkers
> Full support for Java multi-threading

Optimised JavaScript generation

CheerpJ generates highly-optimised JavaScript:
> Converts from Java bytecode, sources are not required
> Generated JavaScript is fully garbage-collectible
> JavaScript is minimised and compressed to reduce the download footprint

Full Java-JavaScript interoperability

CheerpJ allows Java and JavaScript to interoperate:
> DOM manipulation from Java
> Access any WebAPI from Java (including WebAudio, WebGL)
> Convert Java libraries to JavaScript and expose an API to use them from HTML5