Matlab如何打包成jar并给java使用

由于期末数字图像课程设计需求,使用matlab码好了函数可是没有界面,所以打算用jsp随便搞一搞,可是这样就要跨语言编程了(说得很高大上其实就是打成jar然后丢到项目lib包里面去),这时就需要打包成jar供,废话少说直入重点。

首先你需要将环境变量该成你matlab版本兼容的jdk,比如我用的是matlab2015,而他需要的是jdk1.7,如果jdk版本不同会导致打包不了(我用1.8的打包不了。。。)。

接着你需要打开你的matlab,并且在控制台输入 deploytool

java 如何打包成war java怎么打包成jar包_java

接着选择第三个Library Complier

进入页面后左上角有个可以选着打包类型的,这里选java package,然后是他右边有个选择函数的,这里用一个简单的计算a+b函数为例(点击左边那个加号可以添加函数),最后要注意的是最下面的有个class name ,这个名字是到时候你在java那边使用这个函数的类名,可以取一个有意义的类名,这里演示而已就直接使用默认的Class1

java 如何打包成war java怎么打包成jar包_混合编程_02

万事具备后点击右上角绿色的勾勾(Package)
如果jdk版本不一致会导致一下错误

java 如何打包成war java怎么打包成jar包_java 如何打包成war_03

成功的话就会弹出你打包好的文件夹

java 如何打包成war java怎么打包成jar包_java_04

然后选择中间那个里面的jar文件,将他导入到项目里就可以用了,注意除了导入这个包还要导入Matlab所需要的支持包javabuilder.jar

接下来是简单的使用演示。

import com.mathworks.toolbox.javabuilder.MWException;

import mySum.*;

public class Test {
    public static void main(String[] args) {
        try {
            Class1 myClass1 = new Class1();
            Object[] result = myClass1.mySum(1,1,2);
            System.out.println(result[0]);
        } catch (MWException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

这里需要注意的是mySum方法第一个参数的意思是输出的参数个数,比如a+b输出一个c,所以就是1,接下来第二个参数开始才是你原函数输入所需要的参数。

以上就是所有内容了,不懂的可以问我。

附带一下参考资料
这个是打包的
https://jingyan.baidu.com/article/adc8151387caeaf723bf732f.html
这个是使用的