Eclipse で IBM OPL Java API ライブラリを使用して、OPL モデルとデータ ファイルを Java で実行しています。これは Eclipse で正常に動作していましたが、プログラムを実行可能な jar にコンパイルし、Windows 7 コマンド ラインで実行しようとすると、エラーが発生します。私自身のすべてのコードは、ilog.opl.IloOpl オブジェクトを含む最初の行まで正常に実行されます。このとき、次のエラーが発生します。
No version in manifest (not in a jar?), trying 1260
No version in manifest (not in a jar?), trying 1260
Native code library failed to load: ensure the appropriate library (opl1260.dll/.so) is in your path.
Exceptions:
no opl1260 in java.library.path
no opl_lang_wrap_cpp in java.library.path
no opl_core_wrap_cpp_java1260 in java.library.path
no opl_core_wrap_cpp in java.library.path
no cp_wrap_cpp_java1260 in java.library.path
no cp_wrap_cpp in java.library.path
no concert_wrap_cpp_java1260 in java.library.path
no concert_wrap_cpp in java.library.path
It might also be related to missing Microsoft Visual C++ Redistributable Package.
Exception in thread "main" java.lang.ExceptionInInitializerError
at ilog.concert.cppimpl.concert_wrap.setDebugWrappers(concert_wrap.java:18)
at ilog.opl.IloOplFactory.setDebugMode(IloOplFactory.java:156)
at Simulator.SimManager.solve(SimManager.java:422)
at Simulator.SimManager.runScaleTests(SimManager.java:133)
at Simulator.SimManager.main(SimManager.java:105)
Caused by: java.lang.RuntimeException: Native code library failed to load: ensure the appropriate library (opl1260.dll/.so) is in your path.
Exceptions:
no opl1260 in java.library.path
no opl_lang_wrap_cpp in java.library.path
no opl_core_wrap_cpp_java1260 in java.library.path
no opl_core_wrap_cpp in java.library.path
no cp_wrap_cpp_java1260 in java.library.path
no cp_wrap_cpp in java.library.path
no concert_wrap_cpp_java1260 in java.library.path
no concert_wrap_cpp in java.library.path
It might also be related to missing Microsoft Visual C++ Redistributable Package.
at ilog.concert.IloJNILoader.loadJNI(IloJNILoader.java:85)
at ilog.concert.cppimpl.concert_wrapJNI.<clinit>(concert_wrapJNI.java:15)
... 5 more
しかし、奇妙なことに... 12.6.0 ではなく、Studio 12.6.1 を使用しています。C:\Program Files\IBM\ILOG\CPLEX_Studio1261\opl\lib にある OPLall.jar ファイルを参照しており、PATH にもこのフォルダーが含まれています。
私はグーグルを試してみましたが、これらの関連する問題に遭遇しました=
違いは、これらの問題では、プログラムが正しいバージョンを認識しているように見えることです。何らかの理由で、プログラムが間違ったフォルダーと間違ったファイルを探しています (opl1260 は存在しませんが、opl1261.dll はフォルダー内にあります)。
OPLall.jar (IBM フォルダーからコピーしたもの) MANIFEST には、次のものが含まれています。
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.0
Created-By: IBM Corporation
Specification-Title: IBM ILOG CPLEX OPTIMIZATION STUDIO Java API
Specification-Version: 12.6
Specification-Vendor: IBM
Implementation-Title: IBM ILOG CPLEX OPTIMIZATION STUDIO Java API
Implementation-Version: 12.6.1.0
Implementation-Vendor: IBM
Build-Date: 2014-11-18
この問題を解決する方法を知っている人はいますか?
編集: Microsoft Visual C++ 2010 SP1 再頒布可能パッケージ (x64) もエラー ログに記載されていたので再インストールしましたが、問題は変わりませんでした。IBM Studio の再インストールも試みましたが、同じ問題が発生しました。