現代のウェブブラウザ向けJava仮想マシン
CheerpJは、WebAssembly ベースのブラウザ用Java仮想マシンです。Java 8との広範な互換性が あり、Javaアプリケーション、アプレット、ライブラリ、および Java Web Start / JNLPアプリケーション をプラグインなしでブラウザで実行するための完全なランタイム環境 [1]を提供します。
始める · 例 ·
APIリファレンス ·
GitHubリポジトリ
<script src="https://cjrtnc.leaningtech.com/3.1/cj3loader.js"></script>

機能
CheerpJを使用すると、次のことが可能です:
- 既存の Javaアプリケーション を変更なしでブラウザで実行
- Javaアプレット をレガシープラグインなしでページに含める
- Java Web Start / JNLP アプリケーションを現代のシステムで動作するように移行
- Javaライブラリ をJavaScript/TypeScriptでシームレスに使用
- JavaとJavaScriptのライブラリ間で相互運用
CheerpJは、完全なOpenJDKランタイム環境に基づいており、次の機能をサポートすることができます:
- ネットワーキング
- 仮想ファイルシステム
- クリップボード
- オーディオ
- 印刷
始め方
作成するものが決まっている場合は、該当するチュートリアルに直接進んでください:
CheerpJの仕組み
CheerpJは、以下の2つのコンポーネントの組み合わせです:
- 最適化されたJava-to-JavaScript JITコンパイラ。
- OpenJDKに基づいた完全なJava SE 8ランタイム。
これらは両方ともC++で書かれており、Cheerpを使用してWebAssemblyとJavaScriptにコンパイルされています。
CheerpJの特徴
- Swing、リフレクション、および動的クラスロードを含むJava 8に対する広範なサポートがあり、コードに対する手動介入は不要です。
- CheerpJはJavaバイトコードに直接動作し、Javaソースコードへのアクセスを必要としません。
- CheerpJはSwing/AWTを含む完全なJava SEランタイムを備えています。オーディオ、印刷、およびその他のJava SE機能をサポートします。ランタイムは最適なパフォーマンスとサイズのためにWebAssemblyをサポートします。
- CheerpJ JITによって生成されたJavaScriptコードは高度に最適化され、ガベージコレクションが可能です。
- CheerpJは双方向のJava-JavaScript相互運用性を可能にします。JavaからJavaScriptライブラリやDOMを呼び出して操作することができます。また、JavaScriptからJavaモジュールを呼び出すこともできます。
- CheerpJはJavaのマルチスレッドをサポートします。さらに、Web Workersを使用して並行アプリケーションを作成することもできます。
ライセンス
CheerpJは個人使用および技術評価のために無料です。詳細についてはライセンスをご覧ください。
デモ
CheerpJのいくつかのデモはこちらで見ることができます。
また、JavaFiddleでCheerpJを実際に見ることもできます:
コミュニティ
CheerpJは、NASA、Siemens、UBS、およびその他多くのチームによって本番環境で使用されています。
CheerpJを使用しているコミュニティプロジェクトには、次のようなものがあります:
-
Boardspace
A board game playing application using AWT. Over 100 games are available to play against human and robot opponents using WebSockets.
-
Browsercraft
Minecraft running unmodified in the browser!
活気に満ちたDiscordコミュニティがあり、そこで質問をしたり、プロジェクトを共有したり、コミュニティのサポートを受けることができます。
Discordサーバーに参加する Twitterでフォローする[1]: CheerpJは、Oracle Forms、EBS、Swing、AWT、および多数のフレームワークやライブラリでテストされています。 Javaランタイム環境が必要なJavaSEアプリケーションを実行できるはずです。↩