安裝及調用Matlab程序可能存在的問題解決辦法

無法執行本地調用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 MatlabMCR都要安裝,只安裝一個不夠,因爲需要編寫函數生成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.7jdk,更換後,該錯誤消失。因此,請注意各個環節請儘量保持一致的環境。

 

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 配置有問題。那麼我們關注點應該在環境配置上,筆者在windowslinux上均遇到該問題,附上2種解決。

 

Windows

找到環境變量Path,確保JDKMCRMatlab在其中的配置前後順序,請按照JDKMCRMatlab這樣的順序,例如:%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_PATHXAPPLRESDIR

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引起的,該文件在MatlabMCR中都有,在文件主目錄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頁面中,方便自己調用。當然了,有功夫的可以去使用框架,就避免了這類問題,直接通過框架獲取返回值。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章