Java Native Interface
JNIを経由することで、C/C++からJavaのクラスを利用することもできる。
C/C++からJNI関数を用いてJavaクラスをインスタンス化したり、メソッドを呼び出したり、フィールドを読み書きしたりするためには、まずJavaクラス (jclass) およびメソッドID (jmethodID) あるいはフィールドID (jfieldID) を探索・取得する必要があるが、その際に前述の「型シグネチャ」の文字列が識別子として使用される。
以下はjava.lang.Mathクラスの静的フィールドを取得し、静的メソッドを呼び出す例である。
FindClass()関数で取得したjclassはJavaクラスへのJNIオブジェクト参照である。クラス、フィールド、メソッドの型シグネチャをもとに、リフレクションの要領でC/C++からアクセスすることができる。クラス、フィールド、メソッドを繰り返し利用する場合は、探索にかかる時間を節約するためにキャッシュしておく。