Matlab调用Java类

时间:2023-03-08 16:49:13
Matlab调用Java类

第一步:定位Matlab中Java环境的ext目录

新建一个M script文件,或者直接在Matlab的交互式命令行中输入:

  >> disp(java.lang.System.getProperty('java.ext.dirs')); 
  F:\install\MATLAB\R2017a\sys\java\jre\win64\jre\lib\ext

Matlab调用Java类

第二步:将需要的java文件打包放入到ext目录中(任何一个都行)

  matlab version java  根据这个调整java项目的jdk

eclipse打包时 设定compier很关键,要不然之后会出现错误:Unsupported major.minor version 51.0(JDK版本问题)  

J2SE 8 = 52,

J2SE 7 = 51,

J2SE 6.0 = 50,

J2SE 5.0 = 49,

JDK 1.4 = 48,

JDK 1.3 = 47,

JDK 1.2 = 46,

JDK 1.1 = 45

  Matlab调用Java类

Matlab调用Java类

  右击项目 ---export

  Matlab调用Java类

  Matlab调用Java类

    点击Browse选择jar包生成路径;并且可以自定义jar包名称。

    测试jar包是否正确

打开cmd 转到jar包的磁盘下 
输入:java(空格)-jar(空格)jar的路径(jar包的全称) 
例如:java -jar C:\Users\Administrator\Desktop\XXX.jar

    放入到ext目录中

    Matlab调用Java类

第三步:重启Matlab(很重要)

第四步:编写M文件,调用java类

  新建一个脚本文件,或者直接在Matlab的交互式命令行中输入:  (包名+类名)

  >> h = com.h.test.Hello;
  >> h.sayHello();
  Hello

注意:遇到的问题

1. 从jar包中读取资源文件

 myproject

    |___src

      |___com.util

            |__xx.xls

            |__xx.java

  xx.java中应该这么写

  public static String filePath= "xx.xls";

  InputStream  inStream=this.getClass().getResourceAsStream(filePath);

  System.out.println(filePath);

  workBook = WorkbookFactory.create(inStream);
  sheet = workBook.getSheet(sheetName);

参考网址:

  1. Matlab调用Java类入门
  2. JDK版本导致Unsupported major.minor version 52.0 error
  3. Eclipse 导出可执行Jar文件(工程)(包含第三方Jar包
  4. MATLAB 类型到 Java 类型的映射
  5. 深入jar包:从jar包中读取资源文件(转载)(getResourceAsStream方法)