Linux下Matlab与Java的混合编程

关于Linux下Matlab与Java的混合编程这方面的资料其实已经有好多,不过总是不是很全,我在实现的过程中,总是遇到这样,那样的问题。经过一段时间的摸索,积聚高手的经验,终于算是告一段落,为了方便自己日后使用和方便需要的朋友,把在使用过程中遇到的问题以及解决方法,在这里做个小结。

第一、matlab的安装

这里涉及到Linux是在有界面还是无界面两种情况,不过大同小异。在有界面情况下,通过mount 命令装载成功后,就完全等同于在xp下的操作了。

这里需要注意的是,如果设置下光驱装载的方式(如果是光盘的话,就选择光盘所在的盘符,如果是从镜像文件安装的话选择镜像文件所在的位置)

第二、jdk的安装

一般装linux系统的时候自带有jdk,如果你需要新的版本的jdk,可通过安装盘先将系统自带的jdk卸载,然后在安装需要的jdk版本。

第三、配置环境变量

Linux下Matlab与Java的混合编程

其中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();
 }
}

相关推荐