生成 Java 包并编译 Java 应用程序
支持的平台:Windows®、Linux®、Mac
此示例说明如何从 MATLAB® 函数创建 Java® 包,然后将该包集成到使用 MATLAB Compiler SDK™ 生成的 Java 应用程序中。
前提条件
验证您所安装的 Java 版本是否与 MATLAB Compiler SDK 兼容。有关受支持的 Java 版本的信息,请参阅 MATLAB 支持的其他语言接口。
有关在安装后配置开发环境的信息,请参阅配置用于生成 Java 包的环境。
最终用户必须安装 MATLAB Runtime 才能运行应用程序。有关详细信息,请参阅下载并安装 MATLAB Runtime。
出于测试目的,您可以使用安装的 MATLAB 来代替 MATLAB Runtime。
在 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 包。
创建调用您的函数的 MATLAB 示例脚本。将以下代码保存在名为
makesqrSample1.m的示例文件中。% Sample script to demonstrate execution of function y = makesqr(x) x = 5; y = makesqr(x);在打包过程中,MATLAB Compiler SDK 会使用该示例 MATLAB 脚本生成目标语言的示例应用程序。有关详细信息,请参阅创建示例代码来调用导出函数。
使用
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 应用程序代码用作指南来编写您自己的应用程序。
将生成的 Java 文件
makesqrSample1.java从samples文件夹复制并粘贴到包含makesqr.jar包的文件夹中。在系统命令提示符下,导航到包含
makesqrSample1.java和makesqr.jar文件夹。使用
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将
替换为 MATLAB 或 MATLAB Runtime 安装文件夹的路径。例如,在 Windows 上,路径可能为matlabrootC:\Program Files\MATLAB\R2025b。注意
如果
makesqr.jar或makesqrSample1.java不在当前目录中,请在命令中指定完整路径或相对路径。如果路径包含空格,请用双引号将其引起来。
使用
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
另请参阅
compiler.build.javaPackage | mcc