CheerpJ is a solution for enabling the development of client-side Web applications starting from existing, unmodified Java applications.
What does the CheerpJ compiler do?
The CheerpJ compiler, based on LLVM/Clang, as well as on parts of Cheerp,
CheerpJ can be invoked on whole Java archives (.jar) or on single .class files, and generates a .jar.js (or .js) output.
How does CheerpJ support reflection?
In order to support reflection, CheerpJ, similarly to a JVM, utilizes the metadata available in the original .jar file.
Optionally, .jar archives can be split into multiple segments (size to be defined at compile time) before being deployed. The application will only load the required segments at run time, thus further reducing download time.
How does CheerpJ support dynamic class generation?
CheerpJ.js needs to be distributed alongside any converted Java application that makes use of dynamic constructs such as proxy classes, which get compiled on the fly at run time directly on the browser.
What parts of the Java SE runtime are supported?
The CheerpJ runtime library is hosted by us on a dedicated CDN-backed domain, and we invite users to link to it in order to take advantage of caching and cross-application resource sharing.
Can I use CheerpJ to convert my legacy Java application? I have no longer access to the source code.
Yes, you can convert any Java SE application with CheerpJ without touching the source code. You only need all the .jar archives of your application.
Can I use CheerpJ to convert Java libraries and integrate them in my HTML5 application?
What is the size of the output of CheerpJ
Yes, it should. However, this has not been one of our areas of focus so far.
What is the status of CheerpJ?
CheerpJ is currently in a public beta stage. CheerpJ can be freely downloaded and used for non-commercial and technology evaluation purposes. For commercial applications, please get in touch at firstname.lastname@example.org. General availability of CheerpJ is expected in November 2017.