ubuntu14.04,Matlab调用java代码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/WeiDelight/article/details/85011287

利用一周的闲碎时间折腾matlab调用java,一直没能成功,无意间浏览到一个博客《【总结】Matlab调用Java代码》,按照其方法试了一下,一下子就搞定。

注意事项:matlab里的jdk版本需要跟编译java的jdk版本一致或高于java的jdk版本,不然会出现不兼容的问题。(因为这个问题浪费了我很多时间。。)

主要步骤:

  1. 需要安装好matlab和java的运行环境。我的是matlab 2014a,jdk7,用eclipse作为IDE。
    查看自己系统中的jdk版本和matlab中的jdk版本的方法:
    在matlab中输入version('-java')查看matlab中jdk版本
    可以打开cmd,输入java -version查看系统的jdk版本
  2. 创建一个Java项目叫test_helloWorld
  3. 创建HelloWorld类
package com.test_helloWorld;

public class HelloWorld {
	public void hello(){
        System.out.println("Hello world");
    }
}
  1. 导出java项目为JAR file格式:test_helloWorld.jar
  2. 添加java文件路径
    (1)静态方法:
    在matlab中输入以下代码找到classpath文件:
 edit classpath.txt 

在classpath.txt 文件里添加之前导出的jar路径(这里需要是相对路径):\【存放的文件夹路径】\test_helloWorld.jar
例如, test_helloWorld.jar存放的路径是 \home\matlab_java, 则添加路径:
\home\matlab_java\test_helloWorld.jar
(2)动态路径(每次重启matlab需要重新添加路径):用javaaddpath()函数实现

javaaddpath('\【存放的文件夹路径】\matlab_test.jar ')

Ps.
使用javarmpath可以移除动态添加的路径;
使用clear java可以从内存中移除所有变量,函数,mex文件和动态java类定义,使得整个工作空间(workspacae)为空。

  1. 在matlab命令行里输入以下代码
import com.test_helloWorld.HelloWorld
test = HelloWorld;
test.hello()

成功显示:Hello World

一点小tips:
关于之前说到的版本不兼容问题,我最近找到了一个解决方法,可以让matlab兼容jdk8编译的jar文件。那就是在启动matlab之前,先设定好matlab使用的jdk版本,通过以下命令实现:

env MATLAB_JAVA=/usr/lib/jvm/java-8-oracle/jre matlab

具体方法为:
(1) 先安装好jdk 8或jre 8,具体下载链接为:jdk 8
或者直接通过以下命令安装:
sudo apt install openjdk-8-jdk
(2) 确定jdk 8 的安装路径"[filepath]"。我的是安装在/usr/lib/jvm/java-8-oracle
(3) 然后在shell中输入

env MATLAB_JAVA=[filepath]/jre matlab

启动matlab即可。
(4) 检测matlab兼容的jdk版本的方法:在matlab的命令行里输入:
version -java
显示信息为:

>> version -java
ans =
Java 1.8.0_191-b12 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode

猜你喜欢

转载自blog.csdn.net/WeiDelight/article/details/85011287