Java プログラムとの間の呼び出し
Java™ コードに関連して実行可能な呼び出しを以下に示します。
- EGL 生成の Java プログラムから EGL 生成の Java プログラム
- 非 EGL Java プログラムから EGL プログラム
- EGL 生成の Java プログラムから非 EGL Java プログラム
- EGL 生成の Java プログラムから DLL
- EGL 生成の Java プログラムから .EXE ファイルまたは .BAT ファイル
- EGL 生成の Java プログラムからリモート・メインフレーム・コード。これについては、以下のトピックで説明します。
- 『EGL 生成の Java コードまたはデバッガーからのリモート CICS® プログラムの呼び出し』
- 『EGL 生成の Java コードまたはデバッガーからのリモート IMS™ プログラムの呼び出し』
- 『EGL 生成の Java コードまたはデバッガーからのリモート IMS トランザクションの呼び出し』
EGL 生成の Java プログラムから EGL 生成の Java プログラム
別の EGL 生成のプログラムから EGL 生成のプログラムを呼び出す手順は、call ステートメントを使用してターゲット・プログラムの Java クラスを呼び出す手順と同じように簡単です。
ただし、パッケージの従属関係には注意してください。
以下のいずれかのクラスを呼び出す必要があります。
- 呼び出し側プログラムと同じパッケージ内にあるクラス。
- ドット構文を使用したパッケージ名で修飾したクラス。
- リンケージ・オプションで識別されたクラス。 詳しくは、リンケージ・オプション・パーツの概要を参照してください。
非 EGL Java プログラムから EGL プログラム
非 EGL 生成の Java プログラムから EGL 生成のプログラムを呼び出すには、
以下を実行します。
- EGL プログラム・パーツから EGL サービス・パーツにロジックを移動し、このロジックを SOAP サービスとしてデプロイし、非 EGL 生成プログラムからこのサービスにアクセスします。詳しくは、以下のトピックを参照してください。
- EGL プログラムの Java ラッパー・クラスを作成します。 詳しくは、Java ラッパーの生成を参照してください。
EGL 生成の Java プログラムから非 EGL Java プログラム
EGL によって生成された Java コードから非 EGL Java コードを呼び出すには、タイプ JavaObject のインターフェース・パーツを作成する必要があります。 インターフェース・パーツには、呼び出す Java メソッドの関数の記述が含まれています。
以下の 2 つの方法のいずれかで Java メソッドを呼び出します。
- 関数が静的とマーク付けされている場合は、インターフェース・パーツの名前およびドット構文 (interfacePart.method()) を使用して呼び出します。
- それ以外の場合は、そのインターフェース・パーツに基づいて変数を作成し、それをライブラリー名と同じ方法で使用します。 つまり、ドット構文を使用して、メソッド名にインターフェースの変数名を付加します (interface.method())。
EGL 生成の Java プログラムから DLL
C または COBOL などで作成した単一の非 EGL ダイナミック・リンク・ライブラリー (DLL) 内の各関数は、EGL Java プログラムから呼び出すことができます。 DLL のファイル拡張子は、ご使用の環境によって異なります (.dll、.so、および .sl など)。
EGL プログラムと DLL の間のインターフェースとして動作する、タイプ nativeLibrary のライブラリー・パーツを作成します。 ライブラリー・パーツには関数名およびパラメーターがリストされ、関数名が EGL の規則と一致しない場合は関数の alias プロパティーを使用できます。
関数にアクセスするには、ドット構文 (library.function()) を使用するか、またはその関数をプログラムのグローバルにするライブラリーの use 宣言を作成します。
EGL 生成の Java プログラムから .EXE ファイルまたは .BAT ファイル
EGL には、システム・コマンド (.bat または .exe 実行可能ファイルなど) の呼び出しを可能にする 2 つの関数が用意されています。
- sysLib.callCmd()
- この関数は、指定した実行可能ファイルに制御権を移動します。 その実行可能ファイルが終了すると、制御権は呼び出し側の EGL プログラムに戻ります。
- sysLib.startCmd()
- この関数は、指定した実行可能ファイルに制御権を移動します。 その後は実行を保持し、EGL プログラムおよび実行可能ファイルの両方が同時に実行されます。