一、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);
}
}