MATLAB打包Jar文件与包使用
本文最后更新于 789 天前,其中的信息可能已经有所发展或是发生改变。

之前在导师手上一直做的事工程相关的开发工作,虽然目前做的还是不行,倒是已经在准备玩机器学习了。又是一片未知领域,希望路不要走偏了。

由于我只负责一些项目的工程部分,在算法调用这方面,我非常被动,我只能去适应别人。于是乎,有些人用MATLAB,有些人用Python,反正做完之后都丢给我,至于我用Java怎么调用,无可奉告。

不过很显然这些东西被我搞定了,不然也不会有这篇文章。下一篇不出意外,会介绍Java调用Python的相关内容,不过咱先从简单的开始,也就是MATLAB。

说这个简单是因为MathWorks已经帮我们做好了一切工作,我们用现成的工具好啦。

我们首先查看一下MATLAB的Java版本,在命令行键入

version -java

MATLAB会返回当前的Java版本,注意,这个版本是MATLAB的Java版本,与本地环境没有关系。在打包时,注意本地Java环境和MATLAB的Java大版本保持一致。目前(2021b)最高支持Java 1.8,对绝大多数人来说应该是够用了,虽然看上去比较旧。

其他语言也是一样的方法,我这边提供一张表,仅供参考,这张表也可以在MathWorks官方找到:MATLAB Interfaces to Other Languages

MATLAB Interfaces to Other Languages

我们首先写一个非常简单的函数用于测试(真的很简单)。

示例

然后我们到APP库中,选择Library Compiler,就在这儿!

这就是MATLAB为我们提供的打包📦工具箱了。

打包设置是比较简单的,我在下面标注的很清楚了。主要填写类的信息就可以了。注意,MATLAB只能选择函数文件打包,脚本文件是不行的,当然啦,稍微改改,就可以把脚本文件给改成函数文件了。

打包信息

搞完之后,Package,等一等就可以了,很快的。

打包成功

全部搞定之后,剩下的就不关MATLAB的事情了。我们直接转到IDEA进行剩下的操作。

打包后的文件夹大致是这样,我们只需要打开其中的“for_testing”文件夹就可以找到Jar包了,我们将其添加到项目依赖。当然,还需要一个依赖,就是MATLAB提供的Builder包。路径如下:

.../toolbox/javabuilder/jar
依赖

然后我们编写一个简单的测试类,作为测试。

public class Plus {
    public static void main(String[] args) throws MWException {
        mPlus Test=new mPlus();
        Object[] Res=Test.myPlus(1,1,2);
        System.out.println(Res[0]);
    }
}

注意这段代码:

Object[] Res=Test.myPlus(1,1,2);

由于Java语言的限制,仅能有一个返回值,所以MATLAB将返回值统一定为Object。之所以用数组,是要对付返回值不止一个的情况。我们在myPlus方法中,传递的第一个参数就是指返回值的个数,这里我们传入“1”,表示有一个返回值的意思,后面两个参数当然是让方法计算1+2的结果。

方法参数

输出结果我就不放出来了😂

评论

  1. 博主
    Windows Chrome
    2 年前
    2022-3-26 20:53:06

    乍一看界面以为是Idea…

    • XinhaNewsAgency
      博主
      Shanwer
      Macintosh Safari
      2 年前
      2022-3-27 9:55:04

      就是IDEA😂

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇