July 23rd, 2018: CheerpJ 1.1 is now available! Read our release announcement here.
CheerpJ is the Java compiler for Web applications
convert any Java application and library to JavaScript

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