您好,登錄后才能下訂單哦!
無法執行本地調用Matlab函數JAR包,容易出現的問題
a檢查你的環境變量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個程序,需要都配置環境變量。
b Matlab與MCR都要安裝,只安裝一個不夠,因為需要編寫函數生成JAR,只生成JAR還需要運行時環境。
================================================================
Web調用Matlab問題分析與解決:
部署web調用matlab容易出現很多問題,筆者遇到不少問題,因有些錯誤信息沒有保存,這里沒法描述清所有錯誤,但會把所有配置信息全部加入。
1、Unsupported major.minorversion 51.0
JDK問題,在windows測試環境下,筆者的Eclipse項目環境為1.6,設置電腦系統JDK也為1.6。但運行時產生錯誤。
解決:
了解了一下,該錯誤的問題是指的低版本的JVM虛擬機無法加載高版本編譯的class文件,51.0版本號指代JDK1.7,筆者項目環境和機器JDK均是1.6,為什么出這個問題呢,排查后只有tomcat的問題了,Eclipse中找到使用的Eclipse配置tomcat的內容,發現該tomcat引用的為1.7的jdk,更換后,該錯誤消失。因此,請注意各個環節請盡量保持一致的環境。
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.
根據下面提示的這段內容,大概說的是我安裝的matlab或者MCR 配置有問題。那么我們關注點應該在環境配置上,筆者在windows和linux上均遇到該問題,附上2種解決。
Windows:
找到環境變量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
配置的內容根據每個人的系統位數不同,飄紅部分可能變更,注意查看。
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)中,優先使用MCR的該文件。將其復制一份到c:/windows/system32中,如果是64位系統還應復制到C:\Windows\SysWOW64
6、主要環境問題均在以上都可以解決了,除此之外的其他問題,例如
javax.servlet.ServletException:java.lang.NoClassDefoundError: Could not initialize class
com.mathworks.toolbox…..
這些找不到對象的請注意將這些提示找不到的對象引入到JSP頁面中,方便自己調用。當然了,有功夫的可以去使用框架,就避免了這類問題,直接通過框架獲取返回值。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。