matlab和java混合编程经验分享

最常用的就是可以查到再控制栏deploytool选择library complier打包,但是有问题就是比如果用了外部的求解器比如yalmip或者cplex的话用这个方法会找不到外部的求解器,网上找了很多,基本都大同小异。

后面分享一个亲测有效的打包方法,直接在控制栏输入

复制代码
mcc -W 'java:myJavaPackage,PSO_SOCP' -T link:lib -d 'D:\matlab_output' -v 'D:\matlabwork\**.m' 'D:\matlabwork\*.m' -a 'D:\matlab\toolbox\YALMIP-master' -a 'D:\cplex\cplex\matlab'

'D:\matlab_output' 输出目录

'D:\matlabwork**.m' 'D:\matlabwork*.m'打包的包

'D:\matlab\toolbox\YALMIP-master' -a 'D:\cplex\cplex\matlab'外部依赖

详情可以参考这个

https://ww2.mathworks.cn/help/compiler/mcc.html#buth_o8

补充说明可能遇到的两个报错

复制代码
错误使用 matlab.depfun.internal.cacheMtree (line 29)
MATLAB 代码 'D:\cplex\cplex\matlab\x64_win64\cplexoptimget.m' 包含以下语法错误:
L 22 (C 1): SYNER: 在 '.' 处出现解析错误: 使用的 MATLAB 语法可能无效。

出错 isClassdef>hasClassDef (line 37)
        mt = matlab.depfun.internal.cacheMtree(file);

出错 isClassdef (line 21)
            tf = hasClassDef(file);

出错 className_impl (line 118)
    elseif isfullpath(whichResult) && isClassdef(whichResult)

出错 className (line 64)
        [clsName, clsFile] = className_impl(whichResult);

出错 matlab.depfun.internal.MatlabSymbol/determineClassType (line 722)
            [name, clsFile] = className(symObj.WhichResult, symObj.Symbol);

这个是因为我不知道什么时候动了这个文件夹的代码,多了个',',代开这个文件去掉就行

错误2

复制代码
The file  
 'D:\matlab\toolbox\YALMIP-master\modules\dummy.m'  
 is empty (zero bytes long).  
 
 This file cannot be added to the CTF archive because it will cause an error  
 when the application or library is run. Add valid content to this file if 
 your application or library requires this file. 
Failed to build CTF file: 'D:\matlab_output\myJavaPackage.ctf'. 
Call to mcc failed with return code 1 (0x1).

这个是因为这个文件是dummy.m 是 YALMIP 工具箱中的一个文件,通常用于占位或其他辅助功能。

复制代码
function dummy()
    % Dummy function to satisfy MATLAB Compiler
    disp('This is a placeholder function.');
end

打开这个文件往里面加一行这个就行

相关推荐
半旧夜夏18 小时前
【分布式缓存】Redis持久化和集群部署攻略
java·运维·redis·分布式·缓存
短视频矩阵源码定制18 小时前
矩阵系统源码推荐:技术架构与功能完备性深度解析
java·人工智能·矩阵·架构
Eiceblue18 小时前
使用 Java 将 Excel 工作表转换为 CSV 格式
java·intellij-idea·excel·myeclipse
漂流幻境18 小时前
IntelliJ IDEA的Terminal中执行ping命令时遇到的“No route to host“问题
java·ide·intellij-idea
苹果醋319 小时前
element-ui源码阅读-样式
java·运维·spring boot·mysql·nginx
BUG?不,是彩蛋!19 小时前
IntelliJ IDEA从安装到使用:零基础完整指南
java·ide·intellij-idea
程序员阿鹏19 小时前
56.合并区间
java·数据结构·算法·leetcode
SmoothSailingT19 小时前
IDEA实用快捷键
java·ide·intellij-idea
rengang6619 小时前
Spring AI Alibaba 框架使用示例总体介绍
java·人工智能·spring·spring ai·ai应用编程
没有bug.的程序员19 小时前
@Controller、@RestController、@RequestMapping 解析机制
java·spring boot·spring·controller·requestmapping·restcontroller