`

使用matlab时遇到的一些异常

阅读更多

先声明一下所用软件的位数:

软件位数:

操作系统 :win7 64位

matlab:R2010b 32位

JDK:1.6 32位

 

异常一:Failed to find the library mclmcrrt7_14.dll

具体异常情况如下:

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: Failed to find the library mclmcrrt7_14.dll, required by MATLAB Builder JA, on java.library.path.
 This library is typically installed along with MATLAB or the MCR, its absence may indicate an issue with that installation or the current path configuration.
The MCR version that this component is trying to use is: 7.14.

外部环境是:在一个安装了matlab的环境里下来一个matlab的m文件,弄成jar包之后,让java程序在一个没有matlab的环境下运行,一运行就直接报这个错误了。

 

解决方法:

1、在C:\Windows\System32目录下添加mclmcrrt7_14.dll文件:

看上面的提示好像是说缺少了mclmcrrt7_14.dll,而这个文件是在matlab的安装目录下,我本地的目录是:E:\Program Files\MATLABR2010b\runtime\win32,网上说,将这个文件拷贝到C:\Windows的system/System32/SysWOW64目录下,有些问题解决了,我这里是没解决。没有mclmcrrt7_14.dll文件的可以从附件中下载。

 

2、安装MCR环境:

看异常的后半句,好像是跟MCR有关系,我本地的MCR环境的确没有装,就试着装了一下。MCR的可执行程序也在Matlab的安装目录下,我本地是:E:\Program Files\MATLABR2010b\toolbox\compiler\deploy\win32\MCRInstaller.exe。安装完成之后,再运行,程序正常,问题解决

(MCR程序比较大,,已上传到百度云盘,链接:http://pan.baidu.com/s/1icXps,有需要的可以下载。)

 

异常二:MWException

具体异常:

 

Exception: com.mathworks.toolbox.javabuilder.MWException: 
This component was created using a version of MATLAB Builder JA 
that is not compatible with the version of MCR that it is running against
解决办法:安装MCR。

 

出现这个异常的原因是没有安装MATLAB Compiler Runtime (MCR),因此只需要安装MCR即可,我本地的目录是:E:\Program Files\MATLABR2010b\toolbox\compiler\deploy\win32\MCRInstaller.exe。安装完成之后重启Matlab重新运行m文件,问题就解决了。

 

异常三:将matlab中的m文件build成jar包报错。

具体错误如下:

E:\2015-project\Matlab4j\src\Matlab4j\Matlab4j.java:111: 警告: args没有 @param

    public static void main (String[] args)

E:\2015-project\Matlab4j\src\Matlab4j\Matlab4j.java:61: 警告: com.mathworks.toolbox.javabuilder.MWException没有 @throws

    public Matlab4j() throws MWException

E:\2015-project\Matlab4j\src\Matlab4j\Matlab4j.java:90: 警告: com.mathworks.toolbox.javabuilder.MWException没有 @throws

    public Matlab4j(MWComponentOptions componentOptions) throws MWException

E:\2015-project\Matlab4j\src\Matlab4j\Matlab4j.java:79: 警告: com.mathworks.toolbox.javabuilder.MWException没有 @throws

    public Matlab4j(String pathToComponent) throws MWException


正在生成E:\2015-project\Matlab4j\src\doc\html\Matlab4j\Matlab4jMCRFactory.html...

正在生成E:\2015-project\Matlab4j\src\doc\html\Matlab4j\Matlab4jRemote.html...

E:\2015-project\Matlab4j\src\Matlab4j\Matlab4jRemote.java:59: 错误: 找不到引用

     * @throws java.jmi.RemoteException An error has occurred during the function call or 

E:\2015-project\Matlab4j\src\Matlab4j\Matlab4jRemote.java:62: 警告: java.rmi.RemoteException没有 @throws

    public Object[] Matlab4j(Object... rhs) throws RemoteException;

E:\2015-project\Matlab4j\src\Matlab4j\Matlab4jRemote.java:65: 警告: java.rmi.RemoteException没有 @throws

    void dispose() throws RemoteException;

正在生成E:\2015-project\Matlab4j\src\doc\html\Matlab4j\package-frame.html...

正在生成E:\2015-project\Matlab4j\src\doc\html\Matlab4j\package-summary.html...

E:\2015-project\Matlab4j\src\Matlab4j\package-info.java:8: 警告: <p> 标记为空

 * <p>

E:\2015-project\Matlab4j\src\Matlab4j\package-info.java:15: 错误: 意外的结束标记: </p>

 * </p>


E:\2015-project\Matlab4j\src\Matlab4j\package-info.java:21: 警告: <p> 标记为空

 * <p>


E:\2015-project\Matlab4j\src\Matlab4j\package-info.java:27: 错误: 意外的结束标记: </p>

 * </p> 

 不知道有没有遇到这种情况,反正我是碰到了。查了半天,最后发现竟然是jdk版本的问题。我本地的matlab是32位的,用的环境自然也是32位的。但是我配置的环境变量Java_home却是64位的,所以报各种乱七八糟的错。因此只要切换JRE问题就解决了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics