JVM_LOAD_NATIVE

ネイティブ共有ライブラリを JVM ランタイムにロードします。共有ライブラリをロードしたら、CALL 文を使用してそのエントリ・ポイントの 1 つを JVM COBOL プログラムから呼び出します。

構文:

call "JVM_LOAD_NATIVE" using by reference myLibrary

パラメータ:

myLibrary
PIC X(n)

入口:

myLibrary
ネイティブ共有ライブラリの名前 (大半のプラットフォーム上で .dll または .so)

出口:

なし。

例:

次のプログラムのペアには、JVM COBOL とネイティブ COBOL 間の相互運用に使用されるグループ項目が示されています。

ネイティブ COBOL:

    program-id. NativeProgram as "NativeProgram".
    linkage section.
    01 pets.
       03 p1 pic xxx.
       03 p2 pic xxx.
       03 result pic x(6).
    procedure division.
       goback.
       entry "SwapStrings" using pets.
          display "p1='" p1 "' p2='" p2 "'"
          move p1 to result(4:3)
          move p2 to result(1:3)
          goback.
    end program NativeProgram.  

JVM COBOL:

    program-id. JVMProgram as "JVMProgram".
    01 pets.
        03 dog pic xxx value "dog".
        03 cat pic xxx value "cat".
        03 result pic x(6).
    procedure division.
        call "JVM_LOAD_NATIVE" using by reference "NativeProgram"
        display ""           
        display "Calling native program"
        display "======================="
        display "Pass in 2 strings: '" dog "' & '" cat "'"
        perform reset-all
        call "SwapStrings" using pets
        display "Native program swaps strings"
        display "result = '" result "'"
        display "" 
        goback.
    reset-all section.
        move spaces to result
        .   
    end program. 

コメント:

myLibrary パラメータをリテラルとして渡す必要があります。このパラメータを COBOL 記憶域セクションで宣言することはできません。

JVM COBOL エントリ・ポイントと同じ名前のネイティブ・エントリ・ポイントを呼び出すことはできません。

エントリ・ポイントの名前が同じ 2 つのネイティブ・ライブラリをロードすることはできません。