CentOS下调用Matlab混合编程入门小节

       之前一篇博文写了CentOS下Matlab的安装和安装成功后如何生成需要对jar包,然而实际运用过程中发现出现了比较棘手的问题,卡住了好几天也是醉了....

对这几天解决IDEA上调用MATLAB生成jar包方法的艰难过程做一个小节,指引和本人一样对小白。

      首先需要注意的是,在windows下和Linux下是有所区别的,之前试过在windows下使用没有任何问题,直接按照之前两篇博文操作即可,可是到了Linux(我用的是CentOS)下就会各种问题,主要还是动态库之类的问题,首先遇到的第一个问题也是本人遇到最麻烦的就是:

java.lang.UnsatisfiedLinkError: Failed to find the library libmwmclmcrrt.so.7.16, 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.

这个问题其实主要还是做事要仔细细心啊,提示无法找到libmwmclmcrrt.so.7.16,需要安装MATLAB或者MCR,因为本身就需要用到MATLAB所以已经有了MATLAB,还需要的就是MCR,此处警记:MATLAB一定要和MCR版本匹配正确,我装的是R2012a,是区分32/64位的,所以这一点要十分小心,本人就是这里出了问题卡了好长时间,安装好后需要配置环境变量:

export MCR_HOME=/usr/local/MATLAB/MATLAB_Compiler_Runtime
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
export XAPPLRESDIR=$MCR_HOME/v717/X11/app-defaults

这是我的配置文件里的配置内容,具体可以自己参考修改。这里提醒一下,如果在运行程序报错的时候如果是提示有什么库文件之类的无法找到,一般会给你一个具体文件路径,注意文件路径中是否有glnxa64或者glnx86,根据这个查看自己安装的MCR中是不是有这个提示的文件夹,如果提示的是glnxa64而你的MCR目录下是glnx86则需要考虑是否是版本安装有问题,建议重新安装另外版本的MCR,32位的MCR是glnx86,64位的是gnlxa64。

     这些配置好了以后即可运行程序,此时我程序提示的无法找到libmwmclmcrrt.so.7.16的bug已经解决,可是又遇到了两个问题,不过两个问题都是类似的,一个是提示无法找到libXt.so.6,一个是提示无法找到libXmu.so.6这两个问题解决办法是重新安装32位的对应libXt和libXmu,我电脑是64位的装的这两个都是64位的,但是64位貌似是有问题,具体我没有详纠,安装32位即可,安装命令分别是:yum -y install libXt.i686和yum -y install libXmu.i686。安装完成后再次运行程序就可以成功的调用MATLAB生成jar包中的方法了!!

   PS:补充一下另外一个注意的,不要将在windows下通过matlab生成的jar包在linux下使用,很可能会有bug,我就是之前这样导致出错卡住了好几天一直找不到问题所在的。一般此类出错我遇到的提示是在javabuilder包中internel下Could not find NativeComponentData。


猜你喜欢

转载自blog.csdn.net/klordy_123/article/details/48914073