同じプロジェクト内にある Java と COBOL を使用する場合は、「Java からの COBOL の呼び出しおよび COBOL 作業場所節へのアクセス (COBOL/Java 相互運用プロジェクト)」を参照してください。
[Create a Java Project] ウィザードが表示されます。
Java パースペクティブを開くように求められた場合は、[No] を選択します。JCallShare プロジェクトが作成されます。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.demo4.*;
import java.math.BigDecimal;
public class Demo4
{
public static void main(String[] args)
{
System.out.println("--Java--");
int i = strg.demo4.Int1.get();
System.out.println("Int1= " + i);
strg.demo4.Int1.put(10201);
String s = strg.demo4.Alpha1.get();
System.out.println("Alpha1= " + s);
strg.demo4.Alpha1.put("Purple");
strg.demo4.Group1.colour1[2].put("Yellow");
strg.demo4.Group1.colour1[3].put("Cyan");
BigDecimal num1 = strg.demo4.Num1.get();
System.out.println("Num1= " + num1);
strg.demo4.Num1.put(new BigDecimal("1579.1113"));
String n = strg.demo4.Nat1.get();
System.out.println("Nat1= " + n);
strg.demo4.Nat1.put("abcdeFGHIJ");
String i1 = strg.demo5.Group1.Group2.item1.get();
System.out.println("Item1= " + i1);
strg.demo5.Group1.Group2.item1.put("Orange");
String i2 = strg.demo5.Group1.Group2.Group3.item2.get();
System.out.println("Item1= " + i2);
strg.demo5.Group1.Group2.Group3.item2.put("Yellow");
progs.demo4();
progs.demo5();
}
}
自動的にビルドするようにワークスペースが設定されている場合、プログラムがコンパイルされます。自動的にビルドするようにワークスペースが設定されていない場合は、[Project] メニューの [Build Project] をクリックします。この時点では、まだ COBOL プログラムが存在していないためエラーが発生します。これらは以降の手順で解決されます。
[COBOL Project] ウィザードが表示されます。
プログラムがエディターで開きます。
$set nsymbol(national)
>>JAVA-CALLABLE
program-id. demo4 as "demo4".
working-storage section.
>>JAVA-SHAREABLE ON
01 Int1 pic 9(9) comp-5 value 10.
01 Alpha1 pic x(100) value "Pink".
01 Group1.
03 colour1 pic x(10) occurs 10 value "Red" "Green" "Blue".
01 Num1 pic S9(5)v9(5) comp-3 value 3141.59265.
01 Nat1 pic n(20) value n"Unicode" national.
>>JAVA-SHAREABLE OFF
01 ed-num1 pic +9(5).9(5).
procedure division.
display "--In COBOL Program demo4--"
display "Int1= " Int1
display "Alpha1= " Alpha1
display "colour1(1)= "colour1(1)
display "colour1(2)= "colour1(2)
display "colour1(3)= "colour1(3)
move num1 to ed-num1
display "Num1= " ed-num1
display "Nat1= " Nat1
goback.
end program demo4.
プログラムがエディターで開きます。
$set nsymbol(national)
>>JAVA-CALLABLE
program-id. demo5 as "demo5".
working-storage section.
>>JAVA-SHAREABLE ON
01 Group1.
03 Group2.
05 item1 pic x(10) value "Purple".
05 Group3.
07 item2 pic x(10) value "Green".
>>JAVA-SHAREABLE OFF
01 3item pic 9(10).
procedure division.
display "--In COBOL Program demo5--"
display "Item1= " item1
display "Item2= " item2
goback.
end program demo5.
[Properties for CCallShare] ダイアログ ボックスが表示されます。
[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] をクリックします。これで、2 つのプロジェクトがエラーなしでビルドされるはずです。
[Create, manage, and run configurations] ダイアログ ボックスが表示されます。
新しい構成が表示されます。
デフォルトでは、実行可能ファイル (genjava) は製品インストール フォルダーの bin サブフォルダーにあります。
<COBOL-Output-Name> -p demo4 demo5 -s demo4 demo5 -k com.mycompany.demo4
JCallShare の src フォルダーを再度更新すると、progs.java ファイルと strg.java ファイルが追加されます。
[Run Configurations] ダイアログ ボックスが表示されます。
新しい構成が右側のペインに表示されます。
-Djava.library.path=<path-to-COBOL-project-output-folder>
<path-to-COBOL-project-output-folder> は、CCallShare プロジェクトの出力フォルダーのフル パス名に置き換えます。
--Java-- Int1= 10 Alpha1= Pink Num1= 3141.59265 Nat1= Unicode Item1= Purple Item1= Green --In COBOL Program demo4-- Int1= 0000010201 Alpha1= Purple colour1(1)= Red colour1(2)= Green colour1(3)= Yellow Num1= +01579.11130 Nat1= abcdeFGHIJ --In COBOL Program demo5-- Item1= Orange Item2= Yellow
コードと出力からわかるように、この Java プログラムでは 2 つの引数を COBOL プログラムに渡しています。それらの引数が COBOL で処理されて表示されます。さらに、COBOL プログラムから値が返され、その値が Java プログラムで処理されます。