COBOL からの Java 静的メソッドの呼び出し (別のプロジェクト)

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

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

CALL 文が強化され、同一ワークスペース内にある Java 静的メソッドを呼び出せるようになりました。
この例では、デモンストレーション用に 2 つの新しいプロジェクトを作成しますが、既存のネイティブ COBOL プロジェクトおよび Java プロジェクトを使用するように適応させることもできます。
  1. Java プロジェクトを作成します。
    1. [File > New > Other] をクリックし、[Java] フォルダーから [Java Project] を選択します。

      [Create a Java Project] ウィザードが表示されます。

    2. [Project name] フィールドに「JStatic」と入力し、プロジェクトに必要な JRE を選択して、 [Next] をクリックします。
      注: 選択した JRE と作成する COBOL プロジェクトでビット体系が一致している必要があります。
    3. [Libraries] タブで、[Classpath] を選択して [Add Library] をクリックします。
    4. [COBOL JVM Runtime System] をダブルクリックし、[Finish] をクリックします。
    5. [Finish] をクリックします。

    Java パースペクティブを開くように求められた場合は、[No] を選択します。[JStatic] プロジェクトが作成されます。COBOL プロジェクトと Java プロジェクトの両方を表示するには、COBOL エクスプローラー ビューを選択し、[View menu] アイコン ([View menu]) をクリックして [Filters and Customization] をクリックします。[Filters and Customization] ダイアログ ボックスが開きます。[Pre-set filters] タブをクリックし、[Non-COBOL projects] をオフにして [OK] をクリックします。

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

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

    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] をクリックします。

  3. ネイティブ COBOL プロジェクトを作成します。
    1. [File > New > COBOL Project] をクリックします。

      [COBOL Project] ウィザードが表示されます。

    2. [Project name] フィールドに「CStatic」と入力し、プロジェクト テンプレートを選択して、[Finish] をクリックします。
    [Cstatic] プロジェクトが作成され、ワークスペースに表示されます。このタイプのプロジェクトについては、デフォルトですべてのプロジェクト成果物が完全に表示されるため COBOL エクスプローラー ビューで作業することをお勧めします。
  4. COBOL プログラム (demo1.cbl) の作成:
    1. COBOL エクスプローラー ビューで [CStatic] を選択し、[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] をクリックします。

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

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

    3. [Name] フィールドに構成の名前を入力します。
    4. [Environment] タブを選択し、次の変数を追加します。
      変数
      JAVA_HOME <full-path-to-JRE-used-in-Java-proj>
      CLASSPATH %CLASSPATH%;<path-to-Java-proj-output-folder>
    5. [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 操作を処理したことを示しています。