linux matlab 混合编程libmwmclmcrrt.so.7.13问题

           libmwmclmcrrt.so.7.13找不到

     

感谢这个朋友的文章http://blog.csdn.net/fansy1990/article/details/9987269参考了很多。

方法一: 在Project上点击右键,选测Run as,然后选run configurations,之后在Enviroment中添加LD_LIBRARY_PATH变量,值为$matlabroot/bin/glnxa64

            我的是/usr/local/MATLAB/R2012a/bin/glnx86

方法二:

         linux安装完matlab后在目录$MATLAB_HOME/toolbox/compiler/deploy/glnxa64中有MCRInstaller.bin 使用这个安装MCR即matlab运行时,默认          安装在/opt/M

[plain]  view plain copy
  1. export LD_LIBRARY_PATH =/opt/MATLAB/MATLAB_Compiler_Runtime/v78/runtime/glnxa64:/opt/MATLAB/MATLAB_Compiler_Runtime/v78/sys/os/glnxa64:/opt/MATLAB/MATLAB_Compiler_Runtime/v78/sys/java/jre/glnxa64/jre1.6.0/lib/amd64/native_threads:/opt/MATLAB/MATLAB_Compiler_Runtime/v78/sys/java/jre/glnxa64/jre1.6.0/lib/amd64/server:/opt/MATLAB/MATLAB_Compiler_Runtime/v78/sys/java/jre/glnxa64/jre1.6.0/lib/amd64  
  2.   
  3. export XAPPLRESDIR =/opt/MATLAB/MATLAB_Compiler_Runtime/v78/X11/app-defaults  
ATLAB/MATLAB_Compiler_Runtime中。至此运行时安装完毕,下面进行配置。

首先说明一点,此次试验只能在终端设置MCR的环境变量,不能在配置文件中进行配置(目前还没有找到方法)。

编写sum_test.m文件:

[plain]  view plain copy
  1. function [ output_args ] = sum_test( x1,x2 )  
  2. %SUM_TEST Summary of this function goes here  
  3. %   Detailed explanation goes here  
  4.     output_args=x1+x2;  
  5.   
  6. end  
然后使用javabuildJA进行编译打包,得到SumTest.jar包,在$MATLAB/HOME/toolbox/toolbox/javabuilder/jar 中得到javabulider.jar包。

编写java文件:

[java]  view plain copy
  1. package fansy;  
  2.   
  3. import com.mathworks.toolbox.javabuilder.MWException;  
  4.   
  5. import SumTest.SumTestclass;  
  6.   
  7. public class TestSumFun {  
  8.   
  9.     /** 
  10.      * @param args 
  11.      * @throws MWException  
  12.      */  
  13.     public static void main(String[] args) throws MWException {  
  14.         int a=0;  
  15.         int b=0;  
  16.         if(args.length!=2){  
  17.             System.err.println("please input two number inputs");  
  18.             System.exit(-1);  
  19.         }  
  20.         a=Integer.parseInt(args[0]);  
  21.         b=Integer.parseInt(args[1]);  
  22.   
  23.         SumTestclass st=new SumTestclass();  
  24.           
  25.         Object[] result=st.sum_test(1,a,b );  
  26.         if(result.length<1){  
  27.             System.err.println("error!");  
  28.             System.exit(-1);  
  29.         }  
  30.         System.out.println(result[0].toString());  
  31.     }  
  32.   
  33. }  
创建目录 java_package 并把上面两个包和java文件拷贝到此包下:

运行:  javac -cp javabuilder.jar:SumTest.jar TestSumFun.java 然后编译出错;

添加环境变量: 

                 添加/etc/profile结尾:

export MATLAB_HOME="/usr/local/MATLAB/R2012a"
LD_LIBRARY_PATH=$MATLAB_HOME/runtime/glnx86:$MATLAB_HOME/sys/os/glnx86:$MATLAB_HOME/sys/java/jre/glnx86/jre1.6.0/lib/i386/native_threads:$MATLAB_HOME/sys/java/jre/glnx86/jre1.6.0/lib/i386/server:$MATLAB_HOME/sys/java/jre/glnx86/jre1.6.0/lib/i386
XAPPLRESDIR=$MATLAB_HOME/X11/app-defaults
export LD_LIBRARY_PATH 
export XAPPLRESDIR 

               source /etc/profile  

              问题解决。我看这个matlab 与java混合编程,就是这个.so的问题卡了好长时间。希望对大家有帮助。




你可能感兴趣的:(java)