無(wú)法執(zhí)行本地調(diào)用Matlab函數(shù)JAR包,容易出現(xiàn)的問(wèn)題
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括鳳縣網(wǎng)站建設(shè)、鳳縣網(wǎng)站制作、鳳縣網(wǎng)頁(yè)制作以及鳳縣網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,鳳縣網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到鳳縣省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!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個(gè)程序,需要都配置環(huán)境變量。
b Matlab與MCR都要安裝,只安裝一個(gè)不夠,因?yàn)樾枰帉懞瘮?shù)生成JAR,只生成JAR還需要運(yùn)行時(shí)環(huán)境。
================================================================
Web調(diào)用Matlab問(wèn)題分析與解決:
部署web調(diào)用matlab容易出現(xiàn)很多問(wèn)題,筆者遇到不少問(wèn)題,因有些錯(cuò)誤信息沒(méi)有保存,這里沒(méi)法描述清所有錯(cuò)誤,但會(huì)把所有配置信息全部加入。
1、Unsupported major.minorversion 51.0
JDK問(wèn)題,在windows測(cè)試環(huán)境下,筆者的Eclipse項(xiàng)目環(huán)境為1.6,設(shè)置電腦系統(tǒng)JDK也為1.6。但運(yùn)行時(shí)產(chǎn)生錯(cuò)誤。
解決:
了解了一下,該錯(cuò)誤的問(wèn)題是指的低版本的JVM虛擬機(jī)無(wú)法加載高版本編譯的class文件,51.0版本號(hào)指代JDK1.7,筆者項(xiàng)目環(huán)境和機(jī)器JDK均是1.6,為什么出這個(gè)問(wèn)題呢,排查后只有tomcat的問(wèn)題了,Eclipse中找到使用的Eclipse配置tomcat的內(nèi)容,發(fā)現(xiàn)該tomcat引用的為1.7的jdk,更換后,該錯(cuò)誤消失。因此,請(qǐng)注意各個(gè)環(huán)節(jié)請(qǐng)盡量保持一致的環(huán)境。
2、TheApache Tomcat Native library which allows optimal performance in productionenvironments was not found on the java.library.path
Tomcat所需支持問(wèn)題,這里需要一個(gè)支持文件tcnative-1.dll,請(qǐng)移步到http://tomcat.heanet.ie/native/,下載一個(gè)比較新一些的版本,該文件在binaries/win32(或win64),然后將其放到自己%JAVA_HOME%/bin文件夾中。放置后重新打包部署tomcat,啟動(dòng)。
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問(wèn)題,放入該文件后,又因?yàn)榘姹締?wèn)題提示錯(cuò)誤。這里因?yàn)橄螺d的tcnative-1.dll與所需版本不一致,因此需要更正。我們將下載的版本放入一份到%JAVA_HOME%/bin中,并放一份到%CATALINA_HOME%/bin中,如果有舊的版本,直接覆蓋或以舊的版本為主,替換之前2個(gè)目錄里的該文件,我們只保持其一致即可。
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ù)下面提示的這段內(nèi)容,大概說(shuō)的是我安裝的matlab或者M(jìn)CR 配置有問(wèn)題。那么我們關(guān)注點(diǎn)應(yīng)該在環(huán)境配置上,筆者在windows和linux上均遇到該問(wèn)題,附上2種解決。
Windows:
找到環(huán)境變量Path,確保JDK、MCR、Matlab在其中的配置前后順序,請(qǐng)按照J(rèn)DK、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:
請(qǐng)找到etc/profile,編輯該文件,加入Path配置。
如MCR路徑為:MCR_HOME=/sur/local/MATLAB/MATLAB Compiler Runtime
exportPATH=$PATH:$MCR_HOME/v717/runtime/glnx86
同時(shí),請(qǐng)檢查一下在安裝MCR時(shí)設(shè)置的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
配置的內(nèi)容根據(jù)每個(gè)人的系統(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.
這個(gè)問(wèn)題與4中的類似,但注意看是因?yàn)檎也坏綆?kù)文件mclmcrrt7_17.dll引起的,該文件在Matlab和MCR中都有,在文件主目錄runtim/win32(win64)中,優(yōu)先使用MCR的該文件。將其復(fù)制一份到c:/windows/system32中,如果是64位系統(tǒng)還應(yīng)復(fù)制到C:\Windows\SysWOW64
6、主要環(huán)境問(wèn)題均在以上都可以解決了,除此之外的其他問(wèn)題,例如
javax.servlet.ServletException:java.lang.NoClassDefoundError: Could not initialize class
com.mathworks.toolbox…..
這些找不到對(duì)象的請(qǐng)注意將這些提示找不到的對(duì)象引入到JSP頁(yè)面中,方便自己調(diào)用。當(dāng)然了,有功夫的可以去使用框架,就避免了這類問(wèn)題,直接通過(guò)框架獲取返回值。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。