在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Matlab编程简单且拥有强大的计算能力,但是其对于某些场景并不适应,常常需要借助于java代码。Matlab调用java代码首先需要两个步骤:1.将java代码打包成jar包;2.matlab调用。(注意:有一个很重要的前提,matlab的java版本要和安装的java版本一致) 1. 使用intellij IDEA编译器将java代码打包成jar包(本人的是intellij 16.3) (1) File—>Projectstructure->Artifacts 点击“+”,选择“Jar”,选择Empty或From moduleswith dependencies,一般会使用后者,后者会把在项目中用到的Jar包解压开,当成项目的一部分,打包到最后的Jar包中。但是这样会有一个问题,即,如果项目中引用的Jar包有签名过,最后打包成的Jar包运行时会抛出错误: “java.lang.SecurityException:Invalid signature file digest for Manifest main attributes” 因此,也可以可以选择Empty,然后在“OutputLayout”中,把自己要打包的文件、文件夹添加进去。对于外部引用的包,笔者全部放在src目录下,因此,在Class Path中,把依赖的jar包添加进去,例如:src/commons-lang3-3.5.jar src/log4j-1.2.15.jar src/ json-lib-2.4-jdk15.jar 设置好Main Class,这就不用多说了。 点击OK。 回到IDEA,选择Build-> Build Artifacts,成功生成Jar包。生成的Jar包位于上图设置的Output directory。 使用命令java -jar xxxxx.jar来执行jar包。 2. matlab调用生成的jar包 (1) 第一步:定位Matlab中Java环境的ext目录 在matlab命令窗口输入disp(java.lang.System.getProperty('java.ext.dirs')); 查询到自己安装的matlab的java环境的ext目录。 (也可以在matlab的窗口输入:edit classpath.txt,然后将你的jar路径填写进去,但是本人没有试过。感兴趣的可以试一下)
第二步:将需要的java文件打包放入到ext目录中(网上教程说会输出两个目录,但是本人就出现一个,直接就是安装目录下的ext目录。) 第三步:重启matlab 第四步:测试程序 本人java项目的包名是:com.company 主函数是BaiduAPI 要调用的函数名为:geo(string a , string b) 那么调用的时候直接为: A=com.company.BaiduAPI; C = A.geo(a,b); 注意:1.当出现类似下图字样的时候: 需要注意你的包名和主函数的名字是否为这个,或者是不是把打好的jar包导入到相应目录下; 2.当出现以下错误的时候:
需要注意:(1)你的有参函数里面的参数类型 (2)在matlab中字符串的表示和java中有所不同; 到目前为止就大功告成了。希望对大家有用! |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论