Linux下Matlab与Java的混合编程
关于Linux下Matlab与Java的混合编程这方面的资料其实已经有好多,不过总是不是很全,我在实现的过程中,总是遇到这样,那样的问题。经过一段时间的摸索,积聚高手的经验,终于算是告一段落,为了方便自己日后使用和方便需要的朋友,把在使用过程中遇到的问题以及解决方法,在这里做个小结。
第一、matlab的安装
这里涉及到Linux是在有界面还是无界面两种情况,不过大同小异。在有界面情况下,通过mount 命令装载成功后,就完全等同于在xp下的操作了。
这里需要注意的是,如果设置下光驱装载的方式(如果是光盘的话,就选择光盘所在的盘符,如果是从镜像文件安装的话选择镜像文件所在的位置)
第二、jdk的安装
一般装linux系统的时候自带有jdk,如果你需要新的版本的jdk,可通过安装盘先将系统自带的jdk卸载,然后在安装需要的jdk版本。
第三、配置环境变量
其中LD_LIBRARY_PATH,XAPPLRESDIR,为matlab需要的环境变量,
JAVA_HOME,PATH,CLASSPATH为java的环境变量,其中部分是myaddprj.jar(matlab生成的包,需要供java调用),javabuilder.jar是matlab中安装mar编译器生成的一个包,mnt为matlab的安装路径
将以上变量设置好之后,执行命令 source /etc/profile
第三编写java主函数,调用我们刚才myaddprj.jar
我写的主函数如下
import myaddprj.*;
import com.mathworks.toolbox.javabuilder.*;
public class test {
public static void myaddtest(){
//Object result = null;
myaddclass myadd = null;
try{
myadd = new myaddclass();
//result = myadd.myadd(2,5);
System.out.println(myadd.myadd(1,new Object[]{1,2})[0]);
// System.out.println(result[1]);
System.out.println("asdf");
}catch(Exception e){
e.printStackTrace();
}finally{
//MWArray.disposeArray(result);
//if(myadd != null){
// myadd.dispose();
//}
System.out.println("it's ok");
}
}
public static void main(String[] args){
myaddtest();
}
}