Matlab程序打成jar包

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jhszh418762259/article/details/54093860

      首先配置好Java环境。在Matlab终端输入deploytool,显示Application Comlier, Hadoop Compiler, Library Complier 和 Production Server Complier。选择Library Complier ,左上方可选C Shared Library, C++ Shared Library, Java Package 和 Python Package。 这里选择Java Package,在右边的Add Exported Functions里加上要打包的函数。下面填写Library信息,类名和函数名。上方选择Runtime是下载安装还是打到包里,打到包里会比较大。一般直接点右边的勾打包。

      找到打出的jar包。在java项目中,还要把 MATLAB_HOME/toolbox/javabuilder/jar/javabuilder.jar加入项目中。假设打出的包名为Package1,类名为默认的Class1,函数名为Function1,就可以调用函数:

import Package1.Class1
Class1 c1 = new Class1();
Object[] result = c1.Function1(1,a,b,c);
// 1表示1个返回值,后面跟上matlab函数对应参数

      要安装Matlab运行环境。Linux R2015b在MATLAB_HOME/toolbox/compiler/deploy/glnxa64下MCRInstaller.zip,解压安装完成。安装完后会提示加环境变量,我是9.0的MCR,路径是MCR_HOME/v90/runtime/glnxa64:MCR_HOME/v90/bin/glnxa64:MCR_HOME/v90/sys/os/glnxa64。 在~/.bashrc或/etc/profile里加上export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:MCR_HOME/v90/runtime/glnxa64:MCR_HOME/v90/bin/glnxa64:MCR_HOME/v90/sys/os/glnxa64,然后source刷新一下。Ubuntu可能会出现加上了以后登陆不进系统(循环登录)的情况,经检查好像是路径中有个libstdc++链接库,可能是覆盖了系统的,但是版本又不够。出现这样的情况在LD_LIBRARY_PATH的前面再加上/usr/lib/x86_64-linux-gnu(视个人情况而定,找到libstdc++*.so的位置),循环登录的问题应该可以解决。但是加上这一串环境变量以后qt creator、ssh client之类的东西可能都会起冲突,冲突时qt creator可以用其自带的脚本启动,不过最方便的还是不用MATLAB和java混合开发时就把这一串环境变量注释掉。

      Windows R2015a在MATLAB_HOME\toolbox\compiler\win64\setup.exe,安装即可。



展开阅读全文

没有更多推荐了,返回首页