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

发布了56 篇原创文章 · 获赞 29 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/foneone/article/details/103493728