我想從Matlab調用一個使用Cplex的Java函數。 目前,我卡住了。下面列出了我嘗試過的一些事情,但我沒有想法。之前,我在那裏,讓我列出的版本:從Matlab調用使用Cplex的Java函數時,java.library.path中的錯誤
- Matlab的版本8.3.0.532(R2014a)
- 的Java 1.7.0_11-b21的與Oracle公司的Java熱點(TM)64位服務器VM混合模式
- Eclipse中jre7和jdk1.7.0_79
我創建了一個包 「milp.jar」,並嘗試從MATLAB調用下面的函數:
milp.MTsolver.Plan()
在我的milp.jar的基本版本中,沒有任何Cplex功能,這沒有問題。就在我的Java類中使用Cplex函數時,我就遇到了麻煩。我試過如下:
爲了能夠使用的Cplex,我添加了路徑javaclasspath.txt文件在Matlab文件夾
prefdir
命令
javaclasspath
在Matlab控制檯
確顯示此路徑已添加到靜態Java路徑。 但後來,打電話給我CPLEX依賴功能milp.MTsolver.Plan()的時候,我得到以下錯誤:
Java exception occurred:
java.lang.UnsatisfiedLinkError: no cplex1262 in java.library.path
java.library.path must point to the directory containing the CPLEX shared library
try invoking java with java -Djava.library.path=...
在此之後post,我應該先加載庫:
java.lang.System.load('C:\Program Files\IBM\ILOG\CPLEX_Studio1262\cplex\lib\cplex.jar');
但這給出了以下錯誤:
Java exception occurred:
java.lang.UnsatisfiedLinkError: C:\Program Files\IBM\ILOG\CPLEX_Studio1262\cplex\lib\cplex.jar: %1 is not a valid Win32 application
在他看來,我嘗試了另一種方法。我只是將cplex.jar複製到Matlab根文件夾中。沒有成功。在Matlab中複製項目文件夾中的cplex.jar時也沒有任何成功。
然後,我試圖找到一個cplex1262.jar,但我只找到了一個cplex1262.dll。所以我將這個路徑添加到了Static Java Path中。這提供了以下錯誤:
java.lang.System.load('C:\Program Files\IBM\ILOG\CPLEX_Studio1262\opl\oplide\plugins\ilog.odms.ide.opllang.win32.win32.x86_64_12.6.2.0\cplex1262.dll');
一個最後一件事我可以嘗試來自於該post一個答案:當我運行在Matlab控制檯下面
Java exception occurred:
java.lang.UnsatisfiedLinkError: ilog.cplex.Cplex.CPXopenCPLEX([I)J
發生同樣的錯誤。 在這裏,他將
-Djava.library.path=...
在VM選項字段
,但在Netbeans的。我可以嘗試在Matlab中做類似的事情,但我還沒有想出如何。 最後,我只是將包含cplex.jar和cplex1262.dll的目錄添加到PATH環境變量中。那裏也沒有運氣。
另一個重要提示可能是我在Eclipse中運行我的代碼時沒有問題,包括Cplex功能!也許值得一提的是,在兩次更改之間,我重新啓動Matlab以確保路徑設置中的所有更改都生效。
我希望能夠清楚地說明我的問題。任何關於如何進行的建議都非常歡迎!