ネイティブ・コードとの相互運用性
ネイティブ・イメージを使用すると、Javaコードをネイティブ共有ライブラリに変換し、C関数と同様にネイティブ(C/C++)アプリケーションからコールできます。ネイティブにコンパイルされたJavaメソッドをコールするには、次の2つのメカニズムがあります:
- JNI呼出しAPI。任意のネイティブ・アプリケーションにJVMをロードするAPIです。JNI呼出しAPIを使用する利点は、同じプロセス内の複数の分離された実行環境をサポートすることです。
- ネイティブ・イメージC API。GraalVMネイティブ・イメージに固有のAPIです。ネイティブ・イメージC APIを使用する利点は、APIの外観を決定できることですが、パラメータおよび戻り型は非オブジェクト型である必要があります。
関連ドキュメント
- ネイティブ共有ライブラリのビルド
- Truffle言語の埋込み - Kevin Menardによるブログ投稿で、Javaメソッドを公開するためのネイティブ・イメージの両方のメカニズムを比較しています
- ネイティブ・イメージのJava Native Interface (JNI)
- JNI呼出しAPI
- ネイティブ・イメージC API