最終更新:2018-11-06 (火) 14:33:40 (13d)  

JNI はてなブックマークを見る
Top / JNI

Java Native Interface

JavaのプログラムからCC++言語などで開発されたネイティブコードのプログラムを利用するためのAPI

http://docs.oracle.com/javase/6/docs/technotes/guides/jni/

http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html

手順

  • Javaコード作成
  • javacでクラスファイル生成
  • javahでインクルードファイル生成
    • ネイティブメソッドを実装するために必要なCヘッダーとソースファイルを生成
  • インクルードファイルを元にC/C++コード作成
  • シェアードライブラリ作成

  • ネイティブメソッド
    JNIEXPORT void JNICALL Java_ClassName_MethodName
       (JNIEnv *env, jobject obj)
     {
         /*ネイティブコードをここに記述する*/
     }

メソッド名変換

クラスとか

JNIEnv

  • Your native functions all receive a JNIEnv as the first argument.
  • JavaVMへのインターフェイスを含む構造体。

JavaVMオブジェクト

メモ

命名規則

変数型のマッピング

Java

C/C++ヘッダファイルの生成

エラー

JNI/C++からJavaを呼ぶ

メモ

関連

参考