ネイティブ・メソッドの PL/I インプリメンテーションは、他の PL/I サブルーチンとほぼ同じようなものです。
サンプル・プログラムには、重要なコンパイラー・オプションを定義する 一連の *PROCESS ステートメントが含まれています。
*Process Limits( Extname( 31 ) ) Margins( 1, 100 ) ; *Process Dllinit xinfo(def); *Process Default( IEEE );
次に、これらのオプションの概要と利点を説明します。
PL/I プロシージャー名は、実行時に Java クラス・ローダーによって 検出されるために、Java 命名規則に準拠している必要があります。Java 命名体系は 3 つの部分で構成されます。最初の部分は Java 環境に対してルーチンを識別し、2 番目の部分はネイティブ・メソッドを定義する Java クラスの名前、3 番目の部分はネイティブ・メソッド自体の名前です。
次に、サンプル・プログラムにある外部 PL/I プロシージャー名 _Java_callingPLI_callToPLI を 分けて説明します。
サンプル・プログラムの完全なプロシージャー・ステートメントは、次のとおりです。
Java_callingPLI_callToPLI:
Proc( JNIEnv , MyJObject )
External( "_Java_callingPLI_callToPLI" )
Options( NoDescriptor ByValue linkage(stdcall) );
Java インターフェースの PL/I 定義を含む PL/I インクルード・ファイルは、次の 2 つのインクルード・ファイルに含まれています。2 つのファイルは、jni.cop の中に jni_md.cop が含まれる構造になっています。これらのインクルード・ファイル は、次のステートメントによって組み込まれます。
%include jni;
jni.cop ファイルの完全なリストについては、¥ibmpliw¥include ディレクトリーを 参照してください。