CheerpJ 3.0 が一般提供開始: 最新のブラウザで任意の Java アプリケーションを実行

新機能!ブラウザでJava Web Startを実行

CheerpJ JNLP Runnerブラウザ拡張機能は、JavaデスクトップをインストールせずにブラウザでJNLPファイルを実行できる唯一のソリューションです。ダウンロードやプラグインは必要ありません。

2017 年の最初のリリースから 7 年が経過し、130,000 以上のダウンロードと数万人のエンタープライズ ユーザーを蓄積してきましたが、CheerpJ 3.0 が一般提供されたことを発表できることをうれしく思います。これは、あらゆるアプリケーションを実行するという Leaning Technologies のビジョンにおける重要なマイルストーンとなります。ブラウザ。

CheerpJ 3.0 を使用すると、Java アプレット、Java Web Start アプリケーション、スタンドアロン Java アプリケーションなどの Java クライアント アプリケーションを、ローカルに Java をインストールしなくても、最新のブラウザ上で変更せずに実行できます。 

CheerpJは何のためにあるのでしょうか?

CheerpJ は、次の 3 つの主な異なるシナリオで使用されます。

  • レガシーアプリケーションへのアクセスを維持する Java アプレット、Java Web Start、スタンドアロン Java アプリケーションなど。これに関連して、CheerpJ を使用すると、組織は Java デスクトップのインストールおよびレガシー ブラウザ バージョンの要件を削除できます。これにより、セキュリティとコンプライアンスが向上し、メンテナンス コストが削減されます。
  • 既存の Java デスクトップ アプリケーションを最新化します。 CheerpJ は、Java ベースのアプリケーションを最小限の介入で Web アプリケーションに変換することで最新化するパスを提供します。その後、JavaScript の広範な相互運用機能のおかげで、アプリケーションを Web ベースの標準に徐々に最新化することができます。
  • Web アプリケーションでの Java コンポーネントの使用。 CheerpJ を使用すると、強力な Java ライブラリとコンポーネントを Web アプリケーションにシームレスに統合し、ブラウザ側で実行できます。これは従来、サーバー側の実行によって実現されていましたが、CheerpJ を使用すると Java ライブラリをブラウザ上で実行できるようになり、セキュリティを強化しながら遅延とクラウド コストを削減できます。

CheerpJはどのように機能しますか?

CheerpJ はブラウザ用の WebAssemby ベースの JVM であり、完全な JRE を備えており、あらゆる種類の大規模な未変更の Java アプリケーションとの広範な互換性が保証されています。

CheerpJ 3.0 は、2017 年に最初にリリースされた CheerpJ テクノロジーを完全に書き直したものです。新しいアーキテクチャには、いくつかの利点があります。

  • JIT コンパイルが中心になります: CheerpJ 3.0 では、「標準」Java 仮想マシンの動作方法と同様の、JIT ベースの実行モデルが導入されています。これは、変更されていないバイトコード (JAR ファイル) を操作し、ブラウザ内で実行し、オンザフライでコンパイルすることを意味します。事前コンパイルと .jar.js ファイルは非推奨になりました。これにより、CheerpJ 3.0 の導入が非常に簡単になります。
  • 包括的な互換性: 新しい JIT アプローチにより、CheerpJ 3.0 はリフレクションやカスタム ClassLoader を含む Java 言語との包括的な互換性を実現できます。
  • スケーラブルなアーキテクチャ: CheerpJ 3.0 の新しいアーキテクチャには、OpenJDK ランタイムの未変更の完全なビルドと、複数のランタイムをサポートする機能が付属しています。これにより、Java 8 アプリケーションとの包括的な互換性が保証されるだけでなく、Java の将来のリリースをサポートするためのパスも提供されます。
  • JavaScript との強力な相互運用性。 CheerpJ 3.0 は強力な相互運用性構造を導入し、Java が「ネイティブ」Java メソッド経由で JavaScript を呼び出せるようにし、JavaScript から Java を呼び出すための新しい強力な非同期/待機ベースの API を導入します。

CheerpJ は、実行することを目的としているという点でユニークです。 未修正 ブラウザ上の任意の Java クライアント アプリケーション。そのため、完全なランタイム環境、つまり OpenJDK の未修正ビルドが付属しています。 JIT の性質により、任意の Java 構造 (リフレクションを含む) を変更なしでサポートします。 CheerpJ 3.0 で導入されたカスタム ClassLoader の完全サポートは、通常、任意の複雑さの Java アプリケーションを意味します。 ただ働くだけ (CheerpJ がどのようにできるかを見てください IntelliJ IDEAを実行する – 400MBを超えるJARファイル).

他の「ブラウザ上の Java」ソリューションと比較して、CheerpJ にはサーバー側コンポーネントがなく、ソース コードへのアクセスが必要なく、独自の意見がなく (フレームワークではない)、Java 言語を完全にサポートしており、完全な機能が付属しています。 OpenJDK ランタイムにより、実際のアプリケーションとの広範な互換性が保証されます。

7年間の成功(そして失敗)の結果

2017 年の最初のリリース以来、CheerpJ は純粋な JavaScript ソリューションから、JNI に部分的に WebAssembly を使用し、この最新リリースでは JVM 全体に WebAssembly を採用するまで進化してきました。これは、本質的には AOT Java コンパイラーから、JVM の代替物へと進化しました。

ここ数年を通じて、Java アプレット、Web Start、またはスタンドアロン Java クライアントに基づく重要なレガシー アプリケーションへのアクセスに関する差し迫った問題を解決し、エンタープライズの世界で大きな成功を収めてきました。これらの問題は、エンタープライズ部門では非常に一般的な Oracle エコシステムに特に関連します。 

CheerpJ は、Java アプリケーションの最新化に成功したツールであることも証明されており、Java コンテンツを最新の Web 標準に移行するための簡素化されたパスを提供します。 CheerpJ は、「変換された」Java コンポーネントを利用しながら、部分的または段階的な書き換えを可能にします。

最後に、Java アプレットを実行するためのブラウザ拡張機能である CheerpJ ベースの Applet Runner は、主に教育コンテンツへのアクセスを必要とする学生や教師から 130,000 件を超えるダウンロードを受けています。

実際のアプリケーションでの大規模な使用により、この新しいリリースで取り組もうとした CheerpJ の制限と問題も浮き彫りになりました。

CheerpJ 2.x を使用しているほぼすべての開発者は、ほとんどの場合、AOT コンパイル手順と、JAR ファイルをプリコンパイルするためのネイティブ ツールチェーンの必要性に関連して、使いやすさの悪さを嘆いています。新しい CheerpJ 3.0 アーキテクチャは、これとは根本的に異なり、AOT ステップを完全に排除し、JavaScript ライブラリを使用するのと同様に、ほとんどのユースケースで簡単な統合を可能にします。また、ノーコード ソリューションでさらに多くのユースケースをカバーするために、未変更の JNLP / Java Web Start アプリケーションを実行するための新しいブラウザ拡張機能の開発にも投資しました。この新しい拡張機能は現在、エンタープライズ顧客向けにリリースされており、数か月以内に Chrome および Edge ウェブストアでもリリースされる予定です。

CheerpJ 2.x では、クラスローダーの部分的なサポートのみ、ネットワーキングの不完全なサポート、クリップボード統合の不十分な実装など、一見二次的な技術的制限により、Oracle ドメインを含むいくつかの重要なユースケースでツールが使用できなくなりました。 。 CheerpJ 3.0 では、これらの制限がすべて削除されます。 

当然のことながら、CheerpJ 2.x は設計上 Java 8 のみをサポートしているため、最新の Web 開発ツールとしての適用性は限られています。 CheerpJ 3 アーキテクチャでは、複数の Java 言語バージョンと複数のランタイム環境をサポートできるため、最新の Java バージョンが短期間でサポートされる道が開かれます。

CheerpJの未来

CheerpJ については、このリリース以降も素晴らしい計画があります。 3.0 が一般提供に達したため、Java 11 から始めて、最終的には最新の LTS リリースと同等になるまで、より新しい LTS バージョンの Java を段階的にサポートする取り組みを直ちに開始します。これは、複数のバージョンの Java バイトコードと複数の JRE をサポートするようにゼロから設計されたこの新しいアーキテクチャのおかげでのみ可能になります。

ますます新しいバージョンの Java のサポートを追加することで、CheerpJ が WebAssembly を活用してブラウザ上で完全な Java 環境を有効にする最新の Web 開発ツールになることも目指しています。これは、Web アプリケーションの一部として Java ライブラリを使用するコンテキスト (ブラウザ内で実行される Apache POI を想像してください)、または Web 対応の最新のスタンドアロン Java アプリケーションで特に役立つと考えられます。

結論

このリリースは、2 年間にわたる書き直しと、ビジネス ユーザーやコミュニティのメンバーによる大規模アプリケーションでの 7 年間の CheerpJ の使用の集大成です。

ここ数年、このツールに関して貴重なフィードバックを提供いただき、ツールの改善に多大なご協力をいただいたお客様に大変感謝しております。 Discord サーバーでホストされている最近立ち上げられた開発者コミュニティは非常に活発で、CheerpJ 3.0 の初期バージョンとリリース候補をテストし、フィードバックを提供してくれたすべての開発者に感謝します。

CheerpJ 3.0 について詳しく知りたい場合、またはプロジェクトで試してみたい場合は、次のサイトにアクセスしてください。 メインウェブサイト, 開発者ハブ、 そして 開発者コミュニティ.

あなたはおそらくそれも好きでしょう

新機能!ブラウザでJava Web Startを実行

CheerpJ JNLP Runnerブラウザ拡張機能は、JavaデスクトップをインストールせずにブラウザでJNLPファイルを実行できる唯一のソリューションです。ダウンロードやプラグインは必要ありません。

タグ: CheerpJ, CheerpJ 3.0, エンタープライズ Java アプリケーション, Java, Java Web Start, Oracle Forms, リリース

類似の投稿をもっと見る

jaJapanese