May 7th, 2019: CheerpJ 1.4 is now available! Read the full release notes on our blog!
“Our partnership with Leaning Technologies is a major resource for Blackbird, accelerating development of the Blackbird editor in JavaScript editor by many months. This innovation ensures Blackbird will continue to provide best-in-class efficiency in video production workflows for the foreseeable future.” Stephen Streater - Forbidden Technologies
“Several other Java-to-HTML5 conversion tools were considered, but none of these are a turn-key solution, and usually involve having to dedicate resources to completing the project by tinkering with the generated code. This was not an option for Xepto, so the decision to go for CheerpJ was an easy one.” Lindsay Ritchie - Xepto AS
“The porting effort for our application was minimal to non-existent - a simple recompile from our application JAR files to JavaScript, combined with a simple HTML launch page on the website. Two hundred thousand lines of Java UI code running in the browser in record time!” Jeff Martin - ReportMill Software
How?
CheerpJ can convert Java bytecode into HTML5 / JavaScript thanks to:
> an ahead-of-time compiler from Java bytecode to JavaScript
> a web-based full OpenJDK Java runtime environment (in JavaScript)
> native support for reflection and dynamic class generation
> an ahead-of-time compiler from Java bytecode to JavaScript
> a web-based full 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
> 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.
> 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:
Virtually any Java code base can be converted to JavaScript with CheerpJ.
> Reflection
> Proxy classes
> Multi-threading
> Proxy classes
> Multi-threading
Full runtime environment
CheerpJ includes a full Java runtime:
> Based on a full unmodified build of OpenJDK
> 100% runtime support including Swing
> Filesystem, Audio, Printing support
> 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
> 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
> 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
> Access any WebAPI from Java (including WebAudio, WebGL)
> Convert Java libraries to JavaScript and expose an API to use them from HTML5