189 8069 5689

安装及调用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 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页面中,方便自己调用。当然了,有功夫的可以去使用框架,就避免了这类问题,直接通过框架获取返回值。


当前文章:安装及调用Matlab程序可能存在的问题解决办法
文章路径:http://cdxtjz.com/article/jsdesp.html

其他资讯