linux下java调用matlab

项目需要迁移到linux环境,准确的说是redhat系统,所以最近研究在redhat下java调用matlab的解决方法,期间遇到了各种问题,卡了好长时间,现在终于解决了。

Redhat下matlab安装

首先需要在redhat下安装matlab,我redhat是搭在虚拟机里的,大家也可以在虚拟机里搭建练手,可以保存快照,很方便回退。

这里不详细介绍安装过程,只提一些重点内容。

  • 安装时提示是否在线安装选否(询问是英文的)
  • 报错:error while loading shared libraries: libXp.so.6: cannot open shared object file: No such file or directory时,将安装文件中/update/bin/glnx86目录下的libmwins.so文件复制到/usr/lib/下,命名为libXp.so.6

安装就这两个需要注意的地方,下面是调用

java调用matlab

matlab导出jar包这里就不提了,大家可以自己搜索。这里主要讲述过程中遇到的困难及解决办法

  • 提示MCR版本不对,这个报错很奇怪,明明一个matlab导出的,用的就是它的MCR,居然提示不对,解决方法就是配置环境变量LD_LIBRARY_PATH,XAPPLRESDIR
LD_LIBRARY_PATH=/usr/local/MATLAB/bin/glnxa64
XAPPLRESDIR=/usr/local/MATLAB/X11/app-defaults
LD_PATH=/usr/local/MATLAB/runtime/glnxa64

'/usr/local/MATLAB/'换成自己的安装目录,如果还有问题,在eclipse里面配置运行的环境变量,方法是右键项目,选择Run AsRun Configurations,点击Environment选项卡,新建上面两个环境变量。

  • 报错Exception in thread "main" java.lang.LinkageError:/usr/lib/libXp.so.6:undefined symbol :SSL_connect,这里是缺少文件,解决方法是:
mounts /dev/cdrom /media   (挂载盘)
cd /media && ls    (查看是否挂载成功)
vim /etc/yum.repos.d/rhel-debuginfo.repo 打开该文件

*****该文件中前两行不需要改,从baseurl开始修改成下文所示的值
[xxxx]
name=xxxx
baseurl=file:///media/Server
enable=1  (这里一定是1,启动服务)
gpgchek=0  (这里一定是0,否则下面不能安装)
保存该文件,执行下面操作就ok
yum -y install *linbXp*  (安装需要的包)
rpm -qa libXp  (查看是否安装成功)

然后就可以java调用matlab了。 友情提示:上面对rhel-debuginfo.repo文件操作有什么影响不清楚,可以先备份一下供以后还原