次の手順は Enterprise Server コマンド プロンプト (Windows) またはシェル プロンプト (UNIX) から実行します。
$set sourceformat(variable)
>>JAVA-CALLABLE
program-id. "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.
Windows:
cobol demo3.cbl java-output-path(src3) java-package-name(com.mycompany.demo3) java-gen-progs;
UNIX:
cob -yo libdemo3.so -C "java-package-name(com.mycompany.demo3) java-output-path(src3) java-gen-progs" -Q -znoexecstack demo3.cbl
COBOL ライブラリ ファイル (UNIX のみ) が生成され、そのサポート クラス ファイルが com.mycompany.demo3 パッケージ名を使用して生成されて src3 フォルダーに配置されます。
cbllink -D demo3.obj
COBOL ライブラリ ファイルが生成されます。
import 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]);
}
}
この Java コードにより、COBOL のコンパイルで使用したネームスペースがインポートされます。現在の作業フォルダーと src3 フォルダーが CLASSPATH にあることを確認してください。
javac Demo3.java java Demo3[/task/taskbody/steps/step/info/div {"- topic/div "})
次の出力が生成されます。
---------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 プログラムでは、i 整数配列を宣言するときに demo3 COBOL プログラムを呼び出していることを示しています。COBOL コードで使用するいくつかの引数を渡し、COBOL コードから返されるテーブル/配列を Java プログラムで表示しています。