您好,登錄后才能下訂單哦!
無法執(zhí)行本地調用Matlab函數(shù)JAR包,容易出現(xiàn)的問題
a檢查你的環(huán)境變量Path:
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
F:\Program Files\MATLAB\MATLAB Compiler Runtime\v717\runtime\win32;
F:\Program Files\MATLAB\R2012a\runtime\win32;F:\ProgramFiles\MATLAB\R2012a\bin;
這是2個程序,需要都配置環(huán)境變量。
b Matlab與MCR都要安裝,只安裝一個不夠,因為需要編寫函數(shù)生成JAR,只生成JAR還需要運行時環(huán)境。
================================================================
Web調用Matlab問題分析與解決:
部署web調用matlab容易出現(xiàn)很多問題,筆者遇到不少問題,因有些錯誤信息沒有保存,這里沒法描述清所有錯誤,但會把所有配置信息全部加入。
1、Unsupported major.minorversion 51.0
JDK問題,在windows測試環(huán)境下,筆者的Eclipse項目環(huán)境為1.6,設置電腦系統(tǒng)JDK也為1.6。但運行時產(chǎn)生錯誤。
解決:
了解了一下,該錯誤的問題是指的低版本的JVM虛擬機無法加載高版本編譯的class文件,51.0版本號指代JDK1.7,筆者項目環(huán)境和機器JDK均是1.6,為什么出這個問題呢,排查后只有tomcat的問題了,Eclipse中找到使用的Eclipse配置tomcat的內容,發(fā)現(xiàn)該tomcat引用的為1.7的jdk,更換后,該錯誤消失。因此,請注意各個環(huán)節(jié)請盡量保持一致的環(huán)境。
2、TheApache Tomcat Native library which allows optimal performance in productionenvironments was not found on the java.library.path
Tomcat所需支持問題,這里需要一個支持文件tcnative-1.dll,請移步到http://tomcat.heanet.ie/native/,下載一個比較新一些的版本,該文件在binaries/win32(或win64),然后將其放到自己%JAVA_HOME%/bin文件夾中。放置后重新打包部署tomcat,啟動。
3、An incompatible version 1.1.14 of the APR based Apache Tomcat Native library is installed, while Tomcat requires version 1.1.30
這里緊跟2問題,放入該文件后,又因為版本問題提示錯誤。這里因為下載的tcnative-1.dll與所需版本不一致,因此需要更正。我們將下載的版本放入一份到%JAVA_HOME%/bin中,并放一份到%CATALINA_HOME%/bin中,如果有舊的版本,直接覆蓋或以舊的版本為主,替換之前2個目錄里的該文件,我們只保持其一致即可。
4、org.apache.jasper.JasperException:javax.servlet.ServletException: java.lang.UnsatisfiedLinkError: Failed to findthe library libmwmclmcrrt.so.7.17, required by MATLAB Builder JA, onjava.library.path.
This library is typically installed alongwith MATLAB or the MCR, its absence may indicate an issue with thatinstallation or the current path configuration.
The MCR version that this component is tryingto use is: 7.17.
根據(jù)下面提示的這段內容,大概說的是我安裝的matlab或者MCR 配置有問題。那么我們關注點應該在環(huán)境配置上,筆者在windows和linux上均遇到該問題,附上2種解決。
Windows:
找到環(huán)境變量Path,確保JDK、MCR、Matlab在其中的配置前后順序,請按照JDK、MCR、Matlab這樣的順序,例如:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
F:\Program Files\MATLAB\MATLAB CompilerRuntime\v714\runtime\win32;
F:\Program Files\MATLAB\R2012a\runtime\win32;F:\ProgramFiles\MATLAB\R2012a\bin
Linux:
請找到etc/profile,編輯該文件,加入Path配置。
如MCR路徑為:MCR_HOME=/sur/local/MATLAB/MATLAB Compiler Runtime
exportPATH=$PATH:$MCR_HOME/v717/runtime/glnx86
同時,請檢查一下在安裝MCR時設置的LD_LIBRARY_PATH和XAPPLRESDIR。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MCR_HOME/v717/runtime/glnx86:$MCR_HOME/v717/sys/os/glnx86:$MCR_HOME/v717/sys/java/jre/glnx86/jre/lib/i386/native_threads:$MCR_HOME/v717/sys/java/jre/glnx86/jre/lib/i386/server:$MCR_HOME/v717/sys/java/jre/glnx86/jre/lib/i386
exportXAPPLRESDIR=$MCR_HOME/v717/X11/app-defaults
配置的內容根據(jù)每個人的系統(tǒng)位數(shù)不同,飄紅部分可能變更,注意查看。
5、Exception in thread "main" java.lang.UnsatisfiedLinkError:Failed to find the library mclmcrrt7_17.dll, required by MATLAB Builder JA, onjava.library.path.
Thislibrary is typically installed along with MATLAB or the MCR, its absence mayindicate an issue with that installation or the current path configuration.
The MCR version that this component is tryingto use is: 7.17.
這個問題與4中的類似,但注意看是因為找不到庫文件mclmcrrt7_17.dll引起的,該文件在Matlab和MCR中都有,在文件主目錄runtim/win32(win64)中,優(yōu)先使用MCR的該文件。將其復制一份到c:/windows/system32中,如果是64位系統(tǒng)還應復制到C:\Windows\SysWOW64
6、主要環(huán)境問題均在以上都可以解決了,除此之外的其他問題,例如
javax.servlet.ServletException:java.lang.NoClassDefoundError: Could not initialize class
com.mathworks.toolbox…..
這些找不到對象的請注意將這些提示找不到的對象引入到JSP頁面中,方便自己調用。當然了,有功夫的可以去使用框架,就避免了這類問題,直接通過框架獲取返回值。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。