ネイティブメソッドを実装する

Javaからネイティブメソッドを呼ぶためには以下の方法があります。

  • JNI
  • CNI

JNI

一般的な方法です。

  • Javaファイルからヘッダーファイルを生成する
  • そのヘッダーファイルを実装するDLLを作成する
  • System.loadLibraryで実行時にDLLを読み込む

CNI

あまり知られていない方法です。

  • Javaファイルからヘッダーファイルを生成する
  • そのヘッダーファイルを実装するオブジェクトファイルを作成する
  • gcjでリンク時にオブジェクトファイルを一緒に取り込む

waba ではネイティブファイルはVMで実装しているので、CNIの一種だと考えられます(DLLは作らないので)。