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

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Foneone

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值