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

- 下载并安装对应的 Matlab Compiler Runtime。
- 在目标计算机上,将以下内容追加到环境变量 DYLD_LIBRARY_PATH 的末尾。
1 |
|

非常重要
:重启,command+R
进入恢复模式,csrutil disable
关闭 SIP。
二、配置Java环境
- Matlab 命令窗口输入以下代码查看 Java 版本号。
1 |
|

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

-
执行下载好的 JDK 安装包,安装完成的路径为
/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk
-
配置 JAVA_HOME 环境变量,在Mac终端上执行以下代码。
1 |
|
- 查看环境是否生效。
1 |
|
- 备注:Mac 中的 JDK 和 Matlab 中的在大版本上
必须一致
, 小版本可以不相同
。
三、将 m 文件 Complie 为 jar
- 以下路径找到示例函数
makesqr.m
,添加到 Matlab 工作目录。
1 |
|

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

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

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

四、在 IDEA 中运行
- 新建一个模块,
Project SDK
设置为1.8。

- 在以下文件夹找到
javabuilder.jar
1 |
|
- 将
makesqr.jar
和javabuilder.jar
放在lib
包下,Add as library
。

- 编写一个类进行测试。
1 |
|
- 执行的结果和 Matlab 中的结果一致。
1 |
|
参考文章
- Configure Your Java Environment
- Set Run-Time Library Path on Mac Systems
- MCR with MAC and environment Variable
- LD_LIBRARY_PATH and DYLD_LIBRARY_PATH not imported on OS X #1523
- Create a Java Package with MATLAB Code
- 设置java.library.path的值(Mac/Linux/Windows)
- Mac OS增删环境变量
- 64位 JDK 1.8 调用Matlab 2017b打包的jar
- Java调用Matlab函数以及同时配置多版本JDK的方法