同じプロジェクト内にある Java と COBOL を使用する場合は、「Java での COBOL の呼び出し (COBOL/Java 相互運用プロジェクト)」を参照してください。
[Create a Java Project] ウィザードが表示されます。
Java パースペクティブを開くように求められた場合は、[No] を選択します。JShare プロジェクトが作成されます。COBOL プロジェクトと Java プロジェクトの両方を表示するには、COBOL エクスプローラー ビューを選択し、
([View menu]) をクリックして [Filters and Customization] をクリックします。[Filters and Customization] ダイアログ ボックスが開きます。[Pre-set filters] タブをクリックし、[Non-COBOL projects] をオフにして [OK] をクリックします。
プログラムがエディターで開きます。
package com.microfocus.java;
import com.mycompany.demo2.strg;
public class Demo2
{
public static void main(String[] args)
{
System.out.println("--COBOL items now accessible in Java--");
int i1 = strg.demo2.grp1.i1.get();
int i2 = strg.demo2.grp1.i2.get();
System.out.println("-- COBOL item i1 = " + i1);
System.out.println("-- COBOL item i2 = " + i2);
strg.demo2.grp1.i1.put(77777777);
System.out.println("-- i1 updated from Java = " + strg.demo2.grp1.i1.get());
}
}
自動的にビルドするようにワークスペースが設定されている場合、プログラムがコンパイルされます。自動的にビルドするようにワークスペースが設定されていない場合は、[Project] メニューの [Build Project] をクリックします。この時点では、まだ COBOL プログラムが存在していないためエラーが発生します。これらは以降の手順で解決されます。
[COBOL Project] ウィザードが表示されます。
プログラムがエディターで開きます。
$set sourceformat(variable)
program-id. demo2 as "demo2".
working-storage section.
>>JAVA-SHAREABLE ON
01 grp1.
03 i1 pic 9(8) comp-5 value 88888888.
03 i2 pic 9(8) comp-5 value 12345678.
>>JAVA-SHAREABLE OFF
01 grp2.
03 p1 pic x.
03 p2 pic 9.
procedure division.
display "start".
display "value of shared CBL grp is: "
display grp1::i1.
display grp1::i2.
end program demo2.
[Properties for CShare] ダイアログ ボックスが表示されます。
[Link] 設定が表示されます。
Windows:
| オプション | 値 |
|---|---|
| [Target type] | [Single Native Library File] |
UNIX:
| オプション | 値 |
|---|---|
| [Output name] | 現在の値の前に「lib」を付加 |
| [Target type] | [Single Native Library File] |
| [Callable by non-COBOL applications] | [Yes] |
| [Multi-threaded] | [Yes] |
をクリックし、次のコンパイラ指令を追加して [OK] をクリックします。
自動的にビルドするようにワークスペースが設定されている場合、プログラムがコンパイルされます。自動的にビルドするようにワークスペースが設定されていない場合は、[Project] メニューの [Build Project] をクリックします。
ネームスペースを表すフォルダー構造に demo2ws.java ファイルが表示されます。
genjava ユーティリティは、COBOL プログラムと相互運用するいくつかの Java 成果物を生成するために必要です。
[Create, manage, and run configurations] ダイアログ ボックスが表示されます。
新しい構成が表示されます。
デフォルトでは、実行可能ファイル (genjava) は製品インストール フォルダーの bin サブフォルダーにあります。
<COBOL-Output-Name> -s demo2 -k com.mycompany.demo2
JShare プロジェクトの src フォルダーを再度更新すると、strg.java ファイルが追加されます。この時点で、Java プログラムのエラーは解決されました。
[Run Configurations] ダイアログ ボックスが表示されます。
新しい構成が右側のペインに表示されます。
-Djava.library.path="<path-to-COBOL-project-output-folder>"
<path-to-COBOL-project-output-folder> は、CShare プロジェクトの出力フォルダーのフル パス名に置き換えます。
--COBOL items now accessible in Java-- -- COBOL item i1 = 88888888 -- COBOL item i2 = 12345678 -- i1 updated from Java = 77777777
このコードおよび出力は、この COBOL プログラムでは、2 つの PIC 9 COMP-5 項目を Java プログラムと共有していることを示しています。Java プログラムで get メソッドを使用して COBOL データの値を表示しました (これを行うために「COBOL 項目と Java 型のマッピング」に従って COMP-5 項目を int 型にマップしています)。さらに、Java プログラムで put メソッドを使用して COBOL 項目の値を変更しました (ここでも内部でマッピング処理を使用しています)。