COBOL からの Java 静的メソッドの呼び出し (COBOL/Java 相互運用プロジェクト)

次の例では、ネイティブ COBOL プログラムが静的 Java メソッドを呼び出しています。

別々のプロジェクト内から Java および COBOL を使用するには、「COBOL からの Java 静的メソッドの呼び出し (別のプロジェクト)」を参照してください。

  1. COBOL/Java 相互運用プロジェクトを作成します。
    1. [File > New > Project] をクリックし、[Micro Focus COBOL] フォルダーから [COBOL/Java Interoperability Project] タイプを選択して [Next] をクリックします。
    2. [Project name] フィールドにプロジェクトの名前を入力し、プロジェクト テンプレートを選択して [Next] をクリックします。
    3. プロジェクトで使用する Java ランタイムを選択し、[Finish] をクリックします。
    プロジェクトが作成され、ワークスペースに表示されます。このタイプのプロジェクトについては、デフォルトですべてのプロジェクト成果物が完全に表示されるため COBOL エクスプローラー ビューで作業することをお勧めします。
  2. COBOL プログラム (demo.cbl) の作成:
    1. COBOL エクスプローラー ビューでプロジェクトを選択し、[File > New > COBOL Program] をクリックします。
    2. [New file name] フィールドに「demo1.cbl」と入力して、[Finish] をクリックします。

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

    3. テキストを次のように置き換えて、プログラムを保存します。
            $set sourceformat(variable) nsymbol(national)
             program-id. demo1 as "demo1".
             78 MAX_OCC value 5.
             01 i pic xxxx comp-5.
             01 grp2.
                03 nat1 pic n(10) national occurs MAX_OCC
                       value n"Red" n"Green" n"Blue" n"Orange" n"Indigo".
             01 grp3.
               03 utf1 pic u(10) occurs MAX_OCC.
             01 grp4.
               03 num2 pic xxxx comp-5 occurs MAX_OCC
                        value 1 2 4 5 6. 
             procedure division.
            *> Sort COBOL array
              call "java.com.microfocus.java.Demo1.static1" using grp2
              display "---Output from COBOL---"
              perform varying i from 1 by 1 until i > 5
                  display nat1(i)
              end-perform
            *> Select colors of the rainbow from input array
            *> Careful Java has 0 based array indexes
               call "java.com.microfocus.java.Demo1.static2" using grp4 returning grp3
               display "---Output from COBOL---"
               perform varying i from 1 by 1 until i > 5
                  display utf1(i)
               end-perform.
             end program demo1.        

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

  3. Java プログラム (Demo1.java) の作成:
    1. COBOL エクスプローラー ビューでプロジェクトを選択し、[File > New > Other > Class] をクリックして [Next] をクリックします。
    2. [Source folder] フィールドに「<project-name>/src」が指定されていることを確認します。[Package] フィールドに「com.microfocus.java」と入力し、[Name] フィールドに「Demo1」と入力して、[Finish] をクリックします。

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

    3. テキストを次のように置き換えて、プログラムを保存します。
      package com.microfocus.java;
      
      import java.util.Arrays;
      
      public class Demo1
         {
          public static void static1(String[] d)
          {
              System.out.println("---Output from Java Demo1.static1 method---");
              for (int i = 0; i < d.length; i++)
              {
                  System.out.println(d[i]);
              }
              Arrays.sort(d);
          }
          /* select colours from array */
          public static String[] static2(int[] s)
          {
              System.out.println("---Output from Java Demo1.static2 method---");
              for (int i: s)
                  System.out.println(i);
              String[] rainbow = {"Red", "Orange", "Yellow", "Green", "Blue", "Indigo", "Violet"};
              String[] ret = {rainbow[s[0]], rainbow[s[1]], rainbow[s[2]], rainbow[s[3]], rainbow[s[4]]};
              return ret;
          }
      }

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

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

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

    3. [Name] フィールドに構成の名前を入力します。
    4. [Apply]、[Run] の順にクリックします。
    コンソール ウィンドウに次の出力が生成されます。
    ---Output from Java Demo1.static1 method---
    Red
    Green
    Blue
    Orange
    Indigo
    ---Output from COBOL---
    Blue
    Green
    Indigo
    Orange
    Red
    ---Output from Java Demo1.static2 method---
    1
    2
    4
    5
    6
    ---Output from COBOL---
    Orange
    Yellow
    Blue
    Indigo
    Violet

    このコードおよび出力は、COBOL コードが static1 メソッドを実行し、いくつかの COBOL 操作を処理した後、static2 メソッドを実行し、さらにいくつかの COBOL 操作を処理したことを示しています。