You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB R2024a中如何将多个.m文件转为单个.jar文件用于Java项目

将MATLAB R2024a函数打包为Java可调用的.jar文件

一、前置准备

  • 确认MATLAB R2024a已安装MATLAB Compiler和MATLAB Compiler SDK组件,未安装的话通过MATLAB主页的「附加功能」搜索安装
  • 将所有需要打包的.m文件放在同一目录,确保函数间的依赖关系可正常解析(比如被主函数调用的辅助函数也要在该目录)

二、使用Library Compiler打包

  1. 打开MATLAB,命令行输入 deploytool 启动打包工具
  2. 选择「Library Compiler」类型,在输出格式中选Java Package
  3. 点击「Add main files」,导入所有要打包的.m文件(包括被主函数调用的辅助函数)
  4. 配置打包参数:
    • 在「Package name」中填写符合Java规范的包名(例如 com.matlab.customfuncs)
    • 在「Class name」中定义生成的Java类名(该类会封装所有MATLAB函数为Java方法)
  5. 点击右上角「Package」,选择输出目录,等待打包完成。最终的.jar文件会在输出目录的dist子文件夹中

三、Java项目中调用示例

  1. 将生成的.jar文件,以及MATLAB安装目录下 runtime\java\jars\matlab 路径中的 javabuilder.jar 添加到Java项目依赖
  2. 调用示例代码(假设包名为com.matlab.customfuncs,类名为CustomFuncs):
import com.matlab.customfuncs.CustomFuncs;
import com.mathworks.toolbox.javabuilder.MWException;

public class MatlabJarTest {
    public static void main(String[] args) {
        CustomFuncs matlabInstance = null;
        try {
            matlabInstance = new CustomFuncs();
            // 调用MATLAB函数myFunction,第一个参数是输出数量,后续为输入参数
            Object[] result = matlabInstance.myFunction(1, "testInput");
            // 转换并处理输出结果
            String output = (String) result[0];
            System.out.println("MATLAB函数返回结果:" + output);
        } catch (MWException e) {
            e.printStackTrace();
        } finally {
            if (matlabInstance != null) {
                matlabInstance.dispose(); // 必须释放MATLAB资源
            }
        }
    }
}

四、注意事项

  • 运行Java项目的机器需安装MATLAB R2024a Runtime,打包时可选择「Runtime included in package」将Runtime一并打包(会增大文件体积)
  • Java传入的参数类型需与MATLAB函数输入匹配:例如MATLAB字符串对应Java String,数值对应Double等
  • 打包前务必测试所有MATLAB函数可正常运行,避免因函数逻辑错误导致打包失败

内容的提问来源于stack exchange,提问作者El_Merendero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 07:47:11