別々のプロジェクト内にある Java と COBOL を使用する場合は、「Java での COBOL の呼び出し (別個のプロジェクト)」を参照してください。
[Properties for <project-name>] ダイアログ ボックスが表示されます。
この例では、[Java Interoperability Output Path] を src に設定し、プロジェクトを単一のネイティブ ライブラリ ファイルにビルドするなど、他の設定も必要ですが、これらはデフォルトの設定であるためすでに設定されています。
プログラムがエディターで開きます。
$set sourceformat(variable)
>>JAVA-CALLABLE
program-id. demo3 as "demo3" .
working-storage section.
01 i pic 9(9) comp-5.
01 primes.
03 pic 9(9) comp-5 occurs 10 value 2,3,5,7,11,13,17,19,23,27.
linkage section.
01 ltable1.
03 str pic X(100) occurs 4.
01 lint1 pic 9(9) comp-5.
01 ltable2.
03 int1 pic 9(9) comp-5 occurs 10.
procedure division using ltable1 by value lint1 returning ltable2.
perform varying i from 1 by 1 until i > 4
display "COBOL " i " " str(i)
end-perform
display "COBOL " lint1
move primes to ltable2
goback.
end program demo3.
自動的にビルドするようにワークスペースが設定されている場合、プログラムがコンパイルされます。自動的にビルドするようにワークスペースが設定されていない場合は、[Project] メニューの [Build Project] をクリックします。
プログラムがエディターで開きます。
package com.mycompany.demo3;
public class Demo3
{
public static void main(String[] args)
{
String[] s = {"hello", "there", "pink", "green"};
int int1 = 23;
System.out.println("---------demo3---------");
int[] i = com.mycompany.demo3.progs.demo3(s, int1);
System.out.println("Hello from Java");
for (int k=0; k<i.length; k++)
System.out.println(i[k]);
}
}
自動的にビルドするようにワークスペースが設定されている場合、プログラムがコンパイルされます。自動的にビルドするようにワークスペースが設定されていない場合は、[Project] メニューの [Build Project] をクリックします。
新しい構成が右側のペインに表示されます。
-Djava.library.path=<path-to-COBOL-output-folder>
<path-to-COBOL-output-folder> は、COBOL プロジェクトの出力フォルダーのフル パス名に置き換えます。
---------demo3--------- COBOL 0000000001 hello COBOL 0000000002 there COBOL 0000000003 pink COBOL 0000000004 green COBOL 0000000023 Hello from Java 2 3 5 7 11 13 17 19 23 27
コードと出力からわかるように、この Java プログラムでは 2 つの引数を COBOL プログラムに渡しています。それらの引数が COBOL で処理されて表示されます。さらに、COBOL プログラムから値が返され、その値が Java プログラムで処理されます。