主要内容

生成 Java 包并编译 Java 应用程序

支持的平台:Windows®、Linux®Mac

此示例说明如何从 MATLAB® 函数创建 Java® 包,然后将该包集成到使用 MATLAB Compiler SDK™ 生成的 Java 应用程序中。

前提条件

MATLAB 中创建函数

在 MATLAB 中,检查您想要打包的 MATLAB 代码。对于此示例,创建一个名为 makesqr.m 的函数,其中包含以下代码。

function y = makesqr(x)
y = magic(x);

在 MATLAB 命令提示符下,输入 makesqr(5)

输出是一个 5×5 矩阵。

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

使用 compiler.build.javaPackage 创建 Java

使用编程方法编译 Java 包。或者,如果您想使用图形界面创建 Java 包,请参阅使用 Java 包编译器创建 Java 包

  1. 创建调用您的函数的 MATLAB 示例脚本。将以下代码保存在名为 makesqrSample1.m 的示例文件中。

    % Sample script to demonstrate execution of function y = makesqr(x)
    x = 5;
    y = makesqr(x);

    在打包过程中,MATLAB Compiler SDK 会使用该示例 MATLAB 脚本生成目标语言的示例应用程序。有关详细信息,请参阅创建示例代码来调用导出函数

  2. 使用 compiler.build.javaPackage 函数和您先前创建的 makesqr.m 文件编译 Java 包。使用名称-值参量添加示例文件并启用详尽输出。

    buildResults = compiler.build.javaPackage('makesqr.m', ...
    'SampleGenerationFiles','makesqrSample1.m', ...
    'Verbose','on');

    您可以使用名称-值参量在 compiler.build 命令中指定其他选项。有关详细信息,请参阅 compiler.build.javaPackage

    compiler.build.Results 对象 buildResults 包含有关编译类型、生成的文件、包含的支持包和编译选项的信息。

    该函数会在工作文件夹中名为 makesqrjavaPackage 的文件夹内生成以下文件和文件夹。

    • classes - 包含 Java 类文件和可部署存档 CTF 文件的文件夹。

    • doc - 包含包中所有类的 HTML 文档的文件夹。

    • example - 包含 Java 源代码文件的文件夹。

    • samples - 包含 Java 示例驱动文件 makesqrSample1.java 的文件夹。

    • GettingStarted.html - 包含有关集成您的包的信息的文件。

    • includedSupportPackages.txt - 列出包中包含的所有支持文件的文本文件。

    • makesqr.jar - Java 存档文件。

    • mccExcludedFiles.log - 包含应用程序中未包含的任何工具箱函数列表的日志文件。有关不支持的函数的信息,请参阅编译不支持的函数

    • readme.txt - 包含有关部署前提条件的信息以及要打包以进行部署的文件列表的文本文件。

    • requiredMCRProducts.txt - 包含 MATLAB Runtime 运行应用程序所需产品的产品 ID 的文本文件。

    • unresolvedSymbols.txt - 包含有关未解析符号的信息的文本文件。

    注意

    生成的包不包含 MATLAB Runtime 或安装程序。要使用 buildResults 对象创建安装程序,请参阅 compiler.package.installer

编译和运行 MATLAB 生成的 Java 应用程序

创建 Java 包后,您可以从 Java 应用程序调用该包。此示例使用在打包过程中生成的示例 Java 代码。您可以将此示例 Java 应用程序代码用作指南来编写您自己的应用程序。

  1. 将生成的 Java 文件 makesqrSample1.javasamples 文件夹复制并粘贴到包含 makesqr.jar 包的文件夹中。

  2. 在系统命令提示符下,导航到包含 makesqrSample1.javamakesqr.jar 文件夹。

  3. 使用 javac 编译应用程序。在 classpath 参量中,指定 javabuilder.jar 的路径,其中包含 com.mathworks.toolbox.javabuilder 包和生成的 Java 包 makesqr.jar

    • 在 Windows 上,键入:

      javac -classpath "matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\makesqr.jar makesqrSample1.java
    • 在 UNIX® 上,键入:

      javac -classpath "matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./makesqr.jar makesqrSample1.java

      matlabroot 替换为 MATLAB 或 MATLAB Runtime 安装文件夹的路径。例如,在 Windows 上,路径可能为 C:\Program Files\MATLAB\R2025b

      注意

      如果 makesqr.jarmakesqrSample1.java 不在当前目录中,请在命令中指定完整路径或相对路径。如果路径包含空格,请用双引号将其引起来。

  4. 使用 java 运行应用程序。

    • 在 Windows 上,键入:

      java -classpath .;"matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\makesqr.jar makesqrSample1
    • 在 UNIX 上,键入:

      java -classpath .:"matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./makesqr.jar makesqrSample1

      注意

      类路径第一个位置的点 (.) 表示当前工作目录。如果该目录不存在,您会收到一条消息,指出 Java 无法加载该类。

    应用程序会返回与 MATLAB 示例脚本相同的输出。

        17    24     1     8    15
        23     5     7    14    16
         4     6    13    20    22
        10    12    19    21     3
        11    18    25     2     9

另请参阅

|

主题