Java からの COBOL の呼び出しおよび COBOL 作業場所節へのアクセス (COBOL/Java 相互運用プロジェクト)

次の例は、Java プログラムが 2 つの COBOL プログラムを呼び出し、そのプログラムの共有作業場所節項目にアクセスして更新することを示しています。

別々のプロジェクト内から Java と COBOL を使用するには、「Java での COBOL の呼び出しと COBOL 作業場所節へのアクセス (別個のプロジェクト)」を参照してください。

  1. COBOL/Java 相互運用プロジェクトを作成します。
    1. [File > New > Project] をクリックし、[Micro Focus COBOL] フォルダーから [COBOL/Java Interoperability Project] タイプを選択して [Next] をクリックします。
    2. [Project name] フィールドにプロジェクトの名前を入力し、プロジェクト テンプレートを選択して [Next] をクリックします。
    3. プロジェクトで使用する Java ランタイムを選択し、[Finish] をクリックします。
    プロジェクトが作成され、ワークスペースに表示されます。このタイプのプロジェクトについては、デフォルトですべてのプロジェクト成果物が完全に表示されるため COBOL エクスプローラー ビューで作業することをお勧めします。
  2. プロジェクトのプロパティでパッケージ名を設定します。
    注: このパッケージ名を使用して、Java コードが COBOL と相互運用するために必要な、COBOL で生成されたすべての Java 成果物がまとめられます。
    1. プロジェクトが選択されていることを確認し、[Project] メニューの [Properties] をクリックします。

      [Properties for <project-name>] ダイアログ ボックスが表示されます。

    2. [Micro Focus > Project Settings > COBOL] を選択します。
    3. [Package Name] フィールドを com.mycompany.demo4 に更新します。

      この例では、[Java Interoperability Output Path] を src に設定し、プロジェクトを単一のネイティブ ライブラリ ファイルにビルドするなど、他の設定も必要ですが、これらはデフォルトの設定であるためすでに設定されています。

    4. [Apply and Close] をクリックします。
  3. 1 つ目の COBOL プログラム (demo4.cbl) を作成します。
    1. COBOL エクスプローラー ビューでプロジェクトを選択し、[File > New > COBOL Program] をクリックします。
    2. [New file name] フィールドに「demo4.cbl」と入力し、[Finish] をクリックします。

      プログラムがエディターで開きます。

    3. テキストを次のように置き換えて、プログラムを保存します。
            $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.

      自動的にビルドするようにワークスペースが設定されている場合、プログラムがコンパイルされます。自動的にビルドするようにワークスペースが設定されていない場合は、[Project] メニューの [Build Project] をクリックします。

  4. 2 つ目の COBOL プログラム (demo5.cbl) を作成します。
    1. COBOL エクスプローラー ビューでプロジェクトを選択し、[File > New > COBOL Program] をクリックします。
    2. [New file name] フィールドに「demo5.cbl」と入力し、[Finish] をクリックします。

      プログラムがエディターで開きます。

    3. テキストを次のように置き換えて、プログラムを保存します。
            $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.
      自動的にビルドするようにワークスペースが設定されている場合、プログラムがコンパイルされます。自動的にビルドするようにワークスペースが設定されていない場合は、[Project] メニューの [Build Project] をクリックします。
  5. Java プログラム (Demo4.java) を作成します。
    1. COBOL エクスプローラー ビューでプロジェクトを選択し、[File > New > Other > Class] をクリックして [Next] をクリックします。
    2. [Source folder] フィールドに「<project-name>/src」が指定されていることを確認します。[パッケージ] フィールドに「com.mycompany.demo4」と入力し、[Name] フィールドに「Demo4」と入力して、[Finish] をクリックします。

      プログラムがエディターで開きます。

    3. テキストを次のように置き換えて、プログラムを保存します。
      package 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] をクリックします。

  6. 実行構成を作成して実行します。
    1. COBOL エクスプローラー ビューでプロジェクトを右クリックし、[Run As > Run Configurations] を選択します。
    2. [Java Application] 起動構成をダブルクリックします。

      新しい構成が右側のペインに表示されます。

    3. [Name] フィールドに構成の名前を入力します。
    4. [Main class] フィールドに、「com.mycompany.demo4.Demo4」と入力します。
    5. [Arguments] タブを選択し、[VM arguments] フィールドに次の引数を入力します。
      -Djava.library.path=<path-to-COBOL-output-folder> 

      <path-to-COBOL-output-folder> は、COBOL プロジェクトの出力フォルダーのフル パス名に置き換えます。

    6. [Apply]、[Run] の順にクリックします。
    コンソール ウィンドウに次の出力が生成されます。
    --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 プログラムが COBOL プログラム内の作業場所節データにアクセスし、COBOL 項目の値を使用して Java 変数を宣言していることを示しています。Java コードは両方の COBOL プログラムも呼び出しています。