CheerpJ 是一个基于 WebAssembly 的浏览器 Java 虚拟机。它与 Java 8 有广泛的兼容性,并提供了完整的运行时环境1,可以在浏览器中运行 Java 应用程序、小程序、库以及 Java Web Start / JNLP 应用程序,无需插件。
<script src="https://cjrtnc.leaningtech.com/3.0/cj3loader.js"></script>
功能
使用 CheerpJ,您可以:
- 无需修改即可在浏览器中运行现有的 Java 应用程序
- 在网页中包含 Java 小程序,无需传统插件
- 将 Java Web Start / JNLP 应用程序迁移到现代系统上运行
- 在 JavaScript/TypeScript 中无缝使用 Java 库
- 实现 Java 和 JavaScript 库之间的互操作
CheerpJ 基于完整的 OpenJDK 运行时环境,支持:
CheerpJ 如何工作?
CheerpJ 由两个组件组成:
- 一个优化的 Java 到 JavaScript 的 JIT 编译器。
- 一个基于 OpenJDK 的完整 Java SE 8 运行时。
这两个组件都是用 C++ 编写的,并使用 Cheerp 编译为 WebAssembly 和 JavaScript。
CheerpJ 有什么独特之处?
- 对 Java 8 的广泛支持,包括 Swing、反射和动态类加载,无需对代码进行手动干预。
- CheerpJ 直接处理 Java 字节码,不需要访问 Java 源代码。
- CheerpJ 附带完整的 Java SE 运行时,包括 Swing/AWT。它支持音频、打印和其他任何 Java SE 功能。运行时支持 WebAssembly,以实现最佳性能和大小。
- CheerpJ JIT 生成的 JavaScript 代码经过高度优化,可进行垃圾回收。
- CheerpJ 实现了 Java 和 JavaScript 之间的双向互操作性。可以从 Java 调用和操作 JavaScript 库以及 DOM。同样,也可以从 JavaScript 调用 Java 模块。
- CheerpJ 支持 Java 多线程。此外,您可以使用 Web Workers 创建并发应用程序。
许可
CheerpJ 可免费用于个人使用和技术评估。详情请参阅许可。
演示
您可以在这里找到多个 CheerpJ 演示。
您还可以在 JavaFiddle 和 Browsercraft 中看到 CheerpJ 的实际应用。
社区
CheerpJ 被 NASA、西门子、瑞银集团以及许多其他公司的团队在生产中使用。
我们有一个充满活力的 Discord 社区,您可以在那里提问、分享项目并获得社区支持。
加入 Discord 服务器
在 Twitter 上关注我们
Footnotes
-
CheerpJ 已在 Oracle Forms、EBS、Swing、AWT 以及众多框架和库上进行了测试。它应该能够运行那些通常需要 Java 运行时环境的 Java SE 应用程序。 ↩