COBOL は、Java ストリング・データを Unicode で表します。 Java ストリングを COBOL プログラムで表すには、jstring クラスのオブジェクト参照としてストリングを宣言してください。 続いて、JNI サービスを使用して、COBOL 英数字または国別 (Unicode) データを設定するか、オブジェクトから抽出します。
Unicode 用のサービス: jstring オブジェクト参照と COBOL USAGE NATIONAL データ項目 これらのサービスへのアクセスは、JNINativeInterface 環境構造の関数ポインターを使用して行います。
| サービス | 入力引数 | 戻り値 |
|---|---|---|
| NewString1 |
|
jstring オブジェクト参照。 |
| GetStringLength |
|
jstring オブジェクト参照の Unicode 文字数。2 進数フルワード。 |
| GetStringChars1 |
|
|
| ReleaseStringChars |
|
なし。配列のストレージは解放される。 |
|
||
EBCDIC 用のサービス: jstring オブジェクト参照と COBOL 英数字データ (PIC X(n)) との間の変換を行うには、以下の z/OS サービス (JNI の拡張) を使用してください。 これらのサービスへのアクセスは、JNI 環境構造 JNINativeInterface の関数ポインターを使用して行います。
| サービス | 入力引数 | 戻り値 |
|---|---|---|
| NewStringPlatform |
|
2 進数フルワード整数としての戻りコード:
|
| GetStringPlatformLength |
|
2 進数フルワード整数としての戻りコード:
2 番目の引数が参照するヌル終了バイトなど、変換した Java ストリングを 保持するために必要な出力バッファーの長さ (バイト単位) を、3 番目の引数に戻します。 |
| GetStringPlatform |
|
2 進数フルワード整数としての戻りコード:
|
|
||
これらの EBCDIC サービスは、IBM Java 2 Software Development Kit の一部である DLL としてパッケージされています。 サービスの詳細については、IBM Java 2 Software Development Kit の jni_convert.h を参照してください。
サービスを呼び出すには、CALL literal ステートメントを使用してください。 呼び出しは、libjvm.x DLL サイド・ファイルを介して解決されます。このファイルは、オブジェクト 指向言語を使用する COBOL プログラムのリンク手順に含める必要があります。
例えば、次のコードは、EBCDIC ストリング 'MyConverter' から Java ストリング・オブジェクトを作成します。 (このコード・フラグメントは、例: COBOL で書かれた J2EE クライアントで詳細に示す、J2EE クライアント・プログラムからのものです。)
Move z"MyConverter" to stringBuf
Call "NewStringPlatform"
using by value JNIEnvPtr
address of stringBuf
address of jstring1
0
returning rc
EBCDIC サービスが、COBOL プログラムから呼び出す唯一の JNI サービスである 場合には、JNI.cpy コピーブックをコピーする必要はありません。また、JNI 環境 ポインターとのアドレス可能度を設定する必要もありません。
UTF-8 用のサービス: Java ネイティブ・インターフェースでは、jstring オブジェクト参照と UTF-8 ストリングとの間の変換用のサービスも提供しています。 これらのサービスは、COBOL プログラムでの使用にはお勧めしません。 z/OS プラットフォームで UTF-8 文字ストリングを取り扱うことは難しいためです。