matlab java mac_macOS Mojave上Matlab 2018a与Java的联合编程

安装Matlab和MCR

① 自行安装 Matlab 2018a,建议设置为英文。因为 MCR 默认编码不是 UTF-8,而且貌似不能修改。否则后面的异常信息会出现乱码。

b61542d7755295500cbb674e1b37b669.png

③ 在目标计算机上,将以下内容追加到环境变量 DYLD_LIBRARY_PATH 的末尾。

1/Applications/MATLAB/MATLAB_Runtime/v94/runtime/maci64:/Applications/MATLAB/MATLAB_Runtime/v94/sys/os/maci64:/Applications/MATLAB/MATLAB_Runtime/v94/bin/maci64:/Applications/MATLAB/MATLAB_Runtime/v94/extern/bin/maci64

0da1c5140ba98fff698f35c526408add.png

④ 非常重要:重启,command+R进入恢复模式,csrutil disable 关闭 SIP。

配置Java环境

① Matlab 命令窗口输入以下代码查看 Java 版本号。

1version -java

e0c857d93fd5bba67c712146a0681048.png

② 从以下网址下载对应的 JDK ,这里对应的是 Java SE Development Kit 8u144 。

Java SE 8 Archive Downloads

9772e10a0bc8a60c201d80ff5db8baa4.png

③ 执行下载好的 JDK 安装包,安装完成的路径为

/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk

④ 配置 JAVA_HOME 环境变量,在Mac终端上执行以下代码。

1

2

3

4

5

6

7

8

9cd ~

vim .bash_profile

# 按i进行编辑,添加以下语句

exportJAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

exportDYLD_LIBRARY_PATH=/Applications/MATLAB/MATLAB_Runtime/v94/runtime/maci64:/Applications/MATLAB/MATLAB_Runtime/v94/sys/os/maci64:/Applications/MATLAB/MATLAB_Runtime/v94/bin/maci64:/Applications/MATLAB/MATLAB_Runtime/v94/extern/bin/maci64

exportCLASSPATH=.:/Applications/MATLAB_R2018a.app/toolbox/javabuilder/jar/

# 保存之后,更新配置文件

source .bash_profile

⑤ 查看环境是否生效。

1

2

3

4

5java -version

java version "1.8.0_144"

Java(TM) SE Runtime Environment (build 1.8.0_144-b01)

Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

⑥ 备注:Mac 中的 JDK 和 Matlab 中的在大版本上必须一致, 小版本可以不相同。

将 m 文件 Complie 为 jar

① 以下路径找到示例函数 makesqr.m,添加到 Matlab 工作目录。

1/Applications/MATLAB_R2018a.app/toolbox/javabuilder/Examples/MagicSquareExample/MagicDemoComp/makesqr.m

1f3c3fe25096ac4c8910247818c8958e.png

② 命令行输入 deploytool, 选择 Library Compiler。

72e6db69b4d53501ed7404e5cfd5d913.png

③ 添加m函数,修改类名,Package。

51fad666405e09bff68d61614b6749dc.png

④ 在输出文件夹可以找到 makesqr.jar

25e496de115d6afc07626ee3ddaecc06.png

在 IDEA 中运行

① 新建一个模块, Project SDK 设置为1.8。

e0b58e253834d0e1248587a290def705.png

② 在以下文件夹找到 javabuilder.jar

1/Applications/MATLAB_R2018a.app/toolbox/javabuilder/jar

③ 将 makesqr.jar 和 javabuilder.jar 放在 lib 包下, Add as library。

b39958796a634a6d671b0929ac7e9036.png

④ 编写一个类进行测试。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16import com.mathworks.toolbox.javabuilder.MWException;

import makesqr.MakeSqr;

public class TestMatlab2Java {

public static void main(String[] args) throws MWException {

MakeSqr makeSqr = new MakeSqr();

// 第一个参数1表示makesqr()方法只有一个返回值, 不可以省略

// 第二个参数3表示原来Matlab中makesqr()方法的参数为3

Object[] squareArr = makeSqr.makesqr(1, 3);

for (Object square : squareArr) {

System.out.println(square);

}

}

}

⑤ 执行的结果和 Matlab 中的结果一致。

1

2

38 1 6

3 5 7

4 9 2

参考文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值