一、Matlab生成jar
在命令行直接输入:
deploytool
【注意】如果1处没有Java Package选项
需要在matlab的setup.exe中,补充安装选择MATLAB Compiler和MATLAB Compiler SDK
二、检查/配置Java的环境
1、在cmd中java和javac都是有效命令
如果javac无效:
①检查系统变量JAVA_HOME是否为安装JDK的路径;
②(没有就自己新建)检查系统变量CLASSPATH,注意前面有个点“.”:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
③系统变量PATH:
;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
三、配置eclipse2019.03
【前提】项目中使用的编译器与本机Java(java -version查看)的版本号一致(例如均为1.8):
window->preference:
否则报错:
Unsupported major.minor version 52.0
1、新建项目,导入两个jar包:
①MATLABr2018a安装路径\toolbox\javabuilder\jar\javabuilder.jar
②自己刚刚用matlab生成的jar包
2、(伪)代码
import com.mathworks.toolbox.javabuilder.MWArray;
import com.mathworks.toolbox.javabuilder.MWClassID;
import com.mathworks.toolbox.javabuilder.MWComplexity;
import com.mathworks.toolbox.javabuilder.MWNumericArray;
import com.mathworks.toolbox.javabuilder.MWException;
//假定被打包的.m文件中的函数名为:MyMatlabFun,打包时第3步的类名为:MyClass;
import MyMatlabFun.MyClass;
public class 函数名 {
public static void main(String[] args) {
Object[] result = null; //输出对象
MyClass MyMatlabFun = null;
try {
MyMatlabFun = new MyClass();
} catch (MWException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
/*
像正常java代码中一样,定义输入参数的类型/初始值
*/
try {
result = MyMatlabFun.MyMatlabFun(输出参数个数,输入参数1,输入参数2,...,输入参数n);
} catch (MWException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
System.out.println(result[0].toString());
System.out.println(result[1].toString());
...
System.out.println(result[n].toString());
// 释放本地资源
//MWArray.disposeArray(x);
//MWArray.disposeArray(y);
}
}