私はCOBOLとJavaをメインフレーム上で相互にやりとりさせようと努力してきましたが、特にcob2コンパイラメインフレーム相当のUnix。メインフレーム上のUnix:COB2コンパイラ、Java呼び出し用COBOL
このコンパイラはオンラインで多くのユーザーエクスペリエンスを経験していませんでしたので、より直接的な質問をしてもらえれば幸いです。
IBMには、COBOL DLLを直接的または間接的に呼び出すいくつかの例がありますが、最終的にはCOBOLをdllとしてコンパイルし、System.loadを使用してJavaをコンパイルして実行します。これらの例は、次の理由から私のために働いていません。
-cオプションを指定してcob2を使用すると、.oオブジェクトファイルが生成されます。これは空の.lstファイルを生成したにもかかわらず、私にとっては起こりませんでした。これは、Javaプログラムとのリンクのために必要とされる.soのライブラリを提供するように見える
` sh ${COB2HOME}/bin/cob2 -o ${DIR}/c2jcr.o
-qdll,thread,case=mixed ${DIR}/c2jcr.cbl;
${COB2HOME}/bin/cob2
-o ${DIR}/libc2jcr.so
-bdll,case=mixed ${DIR}/c2jcr.o
${JAVAHOME}/bin/j9vm/libjvm.x
${COB2HOME}/lib/igzcjava.x `
、しかし:私は単に-cステップをスキップしてコンパイルするとこの一連のコマンドを使用してリンクすることによってこの問題を回避することができました負荷の調査時および運転中に、システムはLE CSECT CEESTARTが存在しないことを宣言する。
私はこれらのLEモジュールを持っている私のcob2ライブラリ、またはスクリプトのどこかに何かがないのですか?私はLEモジュールをそのままメインフレームからロードし、ENTRY CEESTARTはリンクステップで明示的に述べたが、 "UnsatisfiedLinkError"より "Internal Error"を得ることはできなかった。
JavaからCOBOLを呼び出すための全く別のルートをダウンした場合は、どんなご愛顧を賜りますようお願い申し上げます。どうもありがとうございました。
-cが.oファイルを生成しなかったと主張する場所で使用していたコマンドを提供できますか。 –
はい、お返事ありがとうございます。 sh $ {COB2HOME}/bin/cob2 -c -qdll、thread、case = mixed $ {DIR} /c2jcr.cbl – user7509237
その他の質問:COBOLにはどのコンパイラのバージョンを使用していますか? LibraryName.ProgramName()Vまたは ます。java.lang.UnsatisfiedLinkError:あなたが ます。java.lang.UnsatisfiedLinkErrorを取得しているエラーであるライブラリ名(java.library.pathの中に見つからない) または何か他のもの –