安装Matlab和MCR

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

③ 在目标计算机上,将以下内容追加到环境变量 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

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

配置Java环境

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

1version -java

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

Java SE 8 Archive Downloads

③ 执行下载好的 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

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

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

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

在 IDEA 中运行

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

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

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

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

④ 编写一个类进行测试。

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

参考文章

matlab java mac_macOS Mojave上Matlab 2018a与Java的联合编程相关推荐

  1. java获取ajax上传的文件,Java使用Ajax异步上传文件

    相关代码示例: html代码片段: 名称 class="layui-input"> 描述 文件 请选择配置文件 立即提交 重置 js代码片段: //上传配置文件 $(&quo ...

  2. java安装不上有关故障排除,Java有关问题排查(运维篇)

    Java问题排查(运维篇) 每一位开发想必都会遇到线上服务告警,而导致这样原因的肯能有流量增加或是代码中bug异常没有抓住导致,而此刻我们就需要去排查问题. 1:业务增加,导致FGC频繁发送,如果不知 ...

  3. java 到服务器上读文件路径,java访问linux服务器读取文件路径

    java访问linux服务器读取文件路径 内容精选 换一换 通过ADC从Host获取文件.参见准备环境完成环境配置.以运行用户登录安装Toolkit组件的服务器.执行命令,从Host获取B.java, ...

  4. mac使用eclipse创建java_【Java】Mac上使用Eclipse创建Java项目的一般步骤

    不常创建,记录一下. 一.创建项目文件夹 1.打开eclipse,在工作目录下创建项目文件夹. 二.创建maven项目 1.创建父项目 1.1 File -> New -> Other 步 ...

  5. java从键盘上录入信息

    JAVA从键盘上录入信息 import java.util.Scanner; /*** 从键盘录入信息* 导入Scanner 导包*/public class Test01 {public stati ...

  6. Java是世界上最好的语言

    不好意思,Java是世界上最好的语言 Java的特点 ***Java**是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强 ...

  7. 双表查询java代码_什么是JDBC?Java数据库连接性简介

    JDBC(Java数据库连接性)是Java API,用于管理与数据库的连接,发出查询和命令以及处理从数据库获得的结果集.JDBC在1997年作为JDK 1.1的一部分发布,是为Java持久层开发的首批 ...

  8. matlab java堆内存溢出,matlab内存溢出的解决方案

    (1) 增加虚拟内存:cmd -> taskmgr 打开任务管理器,查看物理内存和虚拟内存,可观察matlab在运行过程中是否超过物理内存和虚拟内存.若超过,增加虚拟内存的方法是不可行的.物理内 ...

  9. java和matlab的交互实践--在java项目中调用matlab程序

    本文主要解决了java项目中调用matlab程序过程中遇到的问题,下文主要分matlab的jar包部署以及java项目配置两个方面来分析. 1.matlab项目的部署 -- 生成jar包 保存matl ...

  10. CentOS x64上Matlab R2015b的镜像安装方法与卸载

    CentOS x64上Matlab R2015b的镜像安装方法与卸载 [日期:2015-11-13] 来源:Linux社区 作者:snake553 [字体:大 中 小] CentOS x64上Matl ...

最新文章

  1. mysql 分组占比_含泪整理MySQL索引
  2. 初步考虑matlab的仿真功能如何编程实现
  3. 经典C语言程序100例之四二
  4. python模仿windows文件管理_python – 在Windows中显示文件的资源管理器属性对话框...
  5. Quartz.Net - Lesson 1: 使用Quartz
  6. EOJ_1082_Virtual Friends
  7. 蚂蚁集团高级架构师郭援非:分布式数据库是金融机构数字化转型的最佳路径...
  8. 云原生落地困挑战无处不在?我选Serverless
  9. centos7源码编译安装mariadb
  10. 数据库:数据导入/数据导出
  11. 七句话道出做人的底线【精辟】
  12. gitlab 安装、配置、清空、卸载、重装
  13. 拓端tecdat:R语言主成分回归(PCR)、 多元线性回归特征降维分析光谱数据和汽车油耗、性能数据
  14. java traingdx函数实现_提取伪彩色图像的信息
  15. 详细记录基于vue+nodejs+mongodb构建的商城学习(三)基于项目的vue框架梳理
  16. Win10完美运行红色警戒2的安装包和补丁
  17. qlv转MP4(笨方法,大用途)
  18. 操作系统IO模式(理解)
  19. 怎么用python海龟画五角星_海龟编辑器五角星怎么画 绘制五角星就是这么简单...
  20. 从有线路由器连接到另一个无线路由器

热门文章

  1. 清华大学开源用于网络嵌入的工具包 OpenNE
  2. mapreduce实现矩阵相乘
  3. 本地上支持apache多站点访问
  4. 应用优化-HTTP缓存
  5. windows xp下Apache2.2.11整合Tomcat6.0.20
  6. 【课本】【No.4】数字特征 离散/连续均值/方差 随机向量 协方差 相关系数 矩 偏度 峰度 多维均值/协方差 运算性质 条件期望 随机个随机向量的和 正态中的条件期望是线性函数
  7. Java GC种类以及触发时机
  8. 全球首次!玩5G日本来了一波骚操作
  9. 字符函数-(学习笔记)
  10. python3使用paramiko