ネイティブのオブジェクト指向 COBOL の Java ドメインを使用する場合、Java オブジェクトに直接アクセスすることはありません。常にプロキシを経由してアクセスします。一方、javasup クラスの「getJavaObject」メソッドを使用すると、実際の Java オブジェクトへのポインターを取得できます。このメソッドを Java Native Interface (JNI) と組み合わせて使用すると、ネイティブのオブジェクト指向 COBOL の Java ドメインでは利用できない Java の機能も利用可能になります。
JNI ポインターを取得するには、javasup クラスの「getEnv」を呼び出します。JNI ポインターは関数テーブルへのポインターです。次の例に示すとおり、コピーブック javatypes.cpy 内の JNINativeInterface データ型が提供する構造体を使用すると、JNI 関数テーブルを簡単に使用できます。
working-storage section.
01 JEnv pointer.
linkage section.
01 lnk-JNINativeInterface JNINativeInterface.
*>
procedure division.
invoke javasup "getEnv" returning jEnv
*> Map the pointer passed in JEnv to the
*> JNINativeInterface structure so that we
*> can call JNI functions.
set address of lnk-JNINativeInterface to JEnv
*>
以上の処理を行うと、JNINativeInterface の型定義で指定されている名前を使用して、JNI 関数を呼び出せます。