Java调用MATLAB程序
来源:互联网 发布:社交软件市场分析 编辑:程序博客网 时间:2024/06/05 21:56
1.在MATLAB中生成Java工程
打开开发工具箱:
类型选择Java Package
填写类名
导入MATLAB文件
开始编译
编译完成
2.运行异常
这次编写程序运用到Java和MATLAB,通过MATLAB写好程序并打包成jar文件copy到Java中进行调用,运行程序却抛出了异常。
Exception in thread "main" java.lang.UnsatisfiedLinkError: Failed to find the library mclmcrrt7_15.dll, required by MATLAB Builder JA, on java.library.path.
This library is typically installed along with MATLAB or the MCR, its absence may indicate an issue with that installation or the current path configuration.
The MCR version that this component is trying to use is: 7.15.
出现这个问题的原因是MCR可能没有安装,所以就先来安装MCR,安装文件在/matlab/toolbox/compiler/deploy/win64/MCRInstaller.exe,找到该文件双击进行安装,如果之前存在这个文件就先卸载再安装,安装成功后重启电脑即可。
再次运行程序已解决刚才的MCR问题,但是又有一个新的bug,即
java.lang.UnsatisfiedLinkError: Native Library C:\Program Files\MATLAB\MATLAB Compiler Runtime\v715\runtime\win64\BuilderJABootstrap.dll already loaded in another classloader
原因是项目界面调用了一个小程序,项目的另一个界面调用了另一个小程序,而这两个小程序实际上同一个程序,也是运行在同一jvm中,由于在一个jvm中是不允许加载一个dll两次,因此当小程序1先执行小程序2再执行加载dll就会报错,反过来由2到1也是会报错的(参考)。所以需要解决如何只让web项目只加载dll一次。
尝试过网上很多的解决方法,大多都不适用,最后在一篇博文中找到了良药。主要方法是将调用dll的jar包放入到web server的公共lib文件夹中(如tomcat/lib),而不是web应用的lib中(如WEB-INF/lib)。就本程序抛出的问题而言,调用BuilderJABootstrap.dll的jar包是javabuilder.jar,将javabuilder.jarcopy到tomcat/lib中,然后重启web应用,再测试,no problem!
- Java 调用 matlab 程序
- Java调用MATLAB程序
- java调用matlab程序
- java调用matlab程序
- java调用matlab程序
- java调用matlab程序
- 关于Java调用Matlab程序
- 使用Java程序调用MatLab
- Java调用MATLAB程序--输入输出
- 使用Java程序调用Matlab
- 在java程序中调用matlab程序
- 在Java程序中调用Matlab函数
- 在Java程序中调用Matlab函数
- 在Java程序中调用Matlab函数
- 在Java程序中调用Matlab函数
- Matlab调用c程序
- MATLAB调用C程序
- Matlab调用C程序
- SourceInsight 日文乱码 问题解决方案
- hdu 3746 Cyclic Nacklace (kmp)
- 【手势交互】12. MYO臂环
- c#中如何避免Button,CheckBox等的点击状态时的焦点矩形框问题:
- Kth Largest Element in an Array
- Java调用MATLAB程序
- C++ 01背包
- print_r($_POST); 查看POST数据。
- 开始安装centOS
- 2015 ACM/ICPC合肥网赛&HDU5491 The Next
- 常用正则表达式
- 学习一个月web开发的成果,服务器C++,数据库postgresql简易的知识分享平台
- Github干货系列:Python 免费资源集合
- ShaderLab: Stencil