Excelsior JET と言語混在型アプリケーション

同じアプリケーションのコンポーネントを異なる言語で実装するとよいケースがあります。たとえば、これまでの資産 (コード) を活用したい場合や、特定の言語でのみ利用可能なコンポーネントを利用したい場合などです。Excelsior JET は、Java コードと他のコンポーネントをシームレスに統合できます。COM オブジェクト、C/C++、FORTRAN、VB、Object Pascal (Delphi) で記述されているアプリケーションとライブラリなどを統合できます。

Excelsior JET を使用して、Java クラス ファイルを Windows および Linux/x86 プラットフォーム用のネイティブな実行ファイルおよびダイナミック ライブラリ (.dll/.so) に変換できます。また、JET は Java プラットフォームの相互運用インターフェイス (Java ネイティブ インターフェイスと呼び出し API) を完全にサポートします。これは、Java-to-COM ブリッジのようなサードパーティの統合ソリューションや標準 JNI API を使用できることを意味します。たとえば、Java API をダイナミック ライブラリに変換し、C/C++ で記述されているアプリケーションから API を使用してこのライブラリを利用できます。

 

Excelsior JET の長所

実行ファイルを作成することで、Java コンポーネントを含むアプリケーションの配布が均一化されます。エンドユーザーには、すべてネイティブなバイナリを配布します。.class/.jar ファイルや Java ランチャを起動するシェル スクリプトを配布する必要はありません。

Excelsior JET は、Java コンポーネントをアプリケーション全体のパフォーマンス ボトルネックにしません。スタティック コンパイラは Java クラス ファイルを積極的に最適化してインテル x86 ネイティブ コードに変換するため、Java パフォーマンスのレベルを C/C++ レベルにまで高めます。さらに、JET ランタイム システムには、Java と非 Java コード間の境界を超える際のペナルティを最小限に抑える、最高速の JNI 実装が含まれています。

高度に最適化されることで、コードの解読が難しくなるという長所もあります。Excelsior JET は、アプリケーションの Java コンポーネントがリバース エンジニアリングされないように強く保護します。

 

Excelsior JET の開始

  1. Excelsior JET の評価版をダウンロードしてインストールします。
  2. Getting Started チュートリアルに従って操作します。
  3. samples/Invocation ディレクトリにあるサンプル プログラムを確認します。これらのサンプルでは、C/C++、COM、VB6/VBA および Delphi から Java コードを起動する方法を説明しています。

言語の混在に関する詳細は、次の資料を参照してください:

異なる言語で記述されたコンポーネントを統合する必要があるが JNI/C++/COM のエキスパートがいない場合や統合する時間がない場合は、Java 相互運用サービスをご利用ください。Excelsior のエンジニアが Java、C、C++、COM、VB および Delphi を統合するお手伝いをさせていただきます。

 

リソース

Java に関連する言語混在型アプリケーションを作成している場合、次のリンクが役に立つでしょう:

 

 

ページトップへ