目次
記事の要約
- CheerpJ 4.0をリリースした
- Java 11とJNIサポートを追加
- モバイルでの使いやすさが向上
CheerpJ 4.0の新機能
Leaning Technologiesは2025年4月23日、WebAssemblyベースのJava仮想マシンCheerpJの最新メジャーリリースであるCheerpJ 4.0を公開した。このバージョンでは、Java 8とJava 11の両方をサポートするようになった点が大きな特徴だ。ロードマップに従い、ブラウザで最新のJavaを使用できるようにするための重要なステップである。
さらに、CheerpJ 4.0はモバイルでの使いやすさを向上させ、WebAssembly JNIモジュールのサポートを追加し、パフォーマンスも大幅に向上させている。Library Modeと組み合わせることで、JavaScriptとJavaの高度な相互運用性を実現し、JavaをWebの主要なプログラミング言語にするというビジョンに近づいているのだ。
CheerpJは、WebAssembly、JavaScript、HTML5テクノロジーを使用して完全にクライアントサイドで動作する、サーバーサイドやクラウドベースのコンポーネントを一切持たない、JavaScriptライブラリとして機能する。大規模なSwing/AWTアプリケーションの実行、JavaライブラリのWebアプリケーションへの統合、レガシーJavaアプレットやJava Web Startアプリケーションの実行など、幅広い用途に対応できる。
CheerpJ 4.0は、特にタブレットにおいて、複雑なJavaアプリケーションをモバイルデバイスで利用可能にする、前例のないレベルのモバイルデバイスサポートを導入している。Javaアプリケーションの実行は、CheerpJ APIへの3つの呼び出しだけで簡単に実行できる。
CheerpJ 4.0の機能一覧
機能 | 詳細 |
---|---|
Javaバージョンサポート | Java 8、Java 11 (Java 17はCheerpJ 5.0で予定) |
モバイルサポート | 大幅な向上 |
WebAssembly JNIモジュールサポート | 追加 |
パフォーマンス | 大幅な向上 |
Library Mode | JavaScriptとJavaの高度な相互運用性 |
対応アプリケーション | Swing/AWTアプリケーション、Javaアプレット、Java Web Startアプリケーション |
実行環境 | WebAssembly、JavaScript、HTML5 |
WebAssembly JNIモジュールについて
CheerpJ 4.0で導入されたWebAssembly JNIモジュールは、ネイティブプラットフォームで共有ライブラリとして動作するのと同様に、動的にロードおよび実行される。これは、OpenGLへのアクセスを提供するJNIメソッドを多く含むLWJGLライブラリのようなシナリオで特に重要だ。
- ネイティブコードのWebAssemblyへのコンパイル
- 動的なロードと実行
- Javaアプリケーションの機能拡張
これらのモジュールにより、Minecraftのような、JNIを介してネイティブコードに依存するアプリケーションをブラウザで実行することが可能になる。これにより、より幅広いJavaアプリケーションがサポートされるようになるだろう。
CheerpJ 4.0に関する考察
CheerpJ 4.0はJava 11のサポート、WebAssembly JNIモジュールの導入、モバイルデバイスのサポート向上など、多くの改善が加えられており、WebにおけるJavaの可能性を大きく広げるものだ。Javaアプリケーションのブラウザ上での実行を容易にすることで、開発者の生産性向上に貢献するだろう。しかし、大規模なアプリケーションの実行には、ブラウザの性能やネットワーク環境に依存する可能性がある。
今後、Java 17のサポートやJavaFX/SWTのサポート追加などが予定されており、さらに多くのJavaアプリケーションがブラウザ上で動作するようになることが期待される。ただし、これらの新機能の導入に伴い、セキュリティ上の脆弱性や互換性の問題が発生する可能性も考慮する必要があるだろう。Leaning Technologiesによる継続的なアップデートとセキュリティ対策が重要となる。
CheerpJの今後の発展により、Webアプリケーション開発におけるJavaの利用が促進され、新たなWebネイティブアプリケーションの登場につながる可能性がある。特に、エンタープライズレベルのアプリケーションのWebへの移行を容易にすることで、コスト削減や開発期間の短縮に貢献するだろう。そのため、セキュリティやパフォーマンスの最適化、そして開発者コミュニティの活性化が重要となる。
参考サイト/関連サイト
- Leaning Technologies.「CheerpJ 4.0: WebAssembly JVM for the browser, now with Java 11 and JNI support」.https://labs.leaningtech.com/blog/cheerpj-4.0, (参照 2025-05-15).