使用Java(eclipse2019.03)運行MATLABr2018a生成的jar

一、Matlab生成jar

在命令行直接輸入:

deploytool


【注意】如果1處沒有Java Package選項

需要在matlab的setup.exe中,補充安裝選擇MATLAB CompilerMATLAB 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);   

    }  
  
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章