matlab文件導出成jar;Java再調用jar步驟詳解

使用工具:matlab2018b,jdk:1.8 ,eclipse

1,查看環境

查看matlab環境:在matlab命令行輸入: version -java

           

查看本機jdk環境:在cmd下輸入: java -version

           

必須保證兩處的jdk環境是相同的1.8。因爲嘗試了很多個版本的matlab,特此把我試過的matlab中的java版本列出,供參考。

matlab2016b中是:1.7.0_60_b19;

matlab2018b中是:1.8.0_152_b16;

matlab2019a中是:1.8.0_181_b13; 2017不太清楚,應該是從2017開始是jdk1.8的。

環境配置問題可以參考這篇博客:https://www.runoob.com/java/java-environment-setup.html

2,matlab程序打包

強調:不是單一的.m文件也可以,就是允許程序中存在相互調用,我的代碼中就存在調用其他的.m文件,不影響的。

在命令行輸入: deploytool選擇“Library Compiler ”,

選擇java package,導入.m文件,然後可以編輯Class Name,Method Name 不能更改,最後選擇package。

記住自己的Class Name和Method Name,稍後要用。

然後就等着三個小對勾出現,就可以了。如果沒有出現,一般都是環境的問題,再返回去看環境配置。成功後,主要利用的是:Test.jar.

3,java使用jar包

首先建立一個java project,工程文件夾右鍵——>Build Path——>Config Build Path——>Libraries——>Add Externel JARs——選擇jar包所在路徑——>確定。

這塊除了上面的Test.jar的之外,還要增加一個matlab裏面的javabuilder.jar。因爲是matlab打包的jar包,需要依賴matlab中的相關函數,所以要將javabuilder.jar包帶上,路徑:E:\matlab\toolbox\javabuilder\jar中。

完成之後就會有兩個這樣的包,在旁邊。

然後java代碼如下:

import com.mathworks.toolbox.javabuilder.MWException;
import Test.test;

public class J {
	public static void main(String[] args) {
		try {
			test j_test = new test();
			String str="C:\\Users\\happy\\Desktop\\J\\88888-20191121-095717.xml";
			Object[] a = j_test.Test(1,str);
			System.out.print("java調用matlab函數運行結果:");
			System.out.print(a[0]);
		}catch (MWException e) {
			e.printStackTrace();
		}
	}	
}

J是在src下建立的class,然後import的是Test.jar包中的class test。然後要new這個類,調用類裏面的函數Test()。str是我函數需要的參數。

最後將結果打印。

這塊主要參考:

https://blog.csdn.net/qq_19865749/article/details/68932949

https://blog.csdn.net/fengzhimohan/article/details/83061800

發佈了60 篇原創文章 · 獲贊 36 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章