在 MATLAB 应用程序中使用 Java 类
概述
此示例向您说明如何创建一个调用 Java® 类的 MATLAB® 包装器函数的 MATLAB 应用程序。
在此示例中,您执行以下步骤:
使用 MATLAB Compiler SDK™ 创建一个使用 MATLAB 包装器函数访问 MATLAB 类的包。
在 MATLAB 应用程序中调用 Java 包装器函数。
构建并运行应用程序。
过程
在 MATLAB 中,检查您想要打包的 MATLAB 代码。对于此示例,使用以下代码创建一个名为
MyMATLABClass.m的 MATLAB 类:classdef MyMatlabClass < handle properties (Access = private) x % input variable y % input variable z % result variable end methods function this = MyMatlabClass() this.x = []; this.y = []; end function setInput(this, input) input = input(:); if isnumeric(input) && numel(input) == 2 this.x = input(1); this.y = input(2); end end function result = getResult(this) result = this.z; end function status = compute(this) try this.z = (this.x.^2 + this.y.^2)^0.5; status = true; catch status = false; end end end end
为该类创建四个 MATLAB 包装器函数:
CreateMyMATLABClass.m、SetInput.m、Compute.m和GetResult.m。CreateMyMATLABClass.m.
function instance = CreateMyMATLABClass() instance = MyMATLABClass(); end
SetInput.m.
function SetInput(myclass, input_value) myclass.setInput(input_value); end
Compute.m.
function status= Compute(myclass) status = myclass.compute(); end
GetResult.m.
function result = GetResult(myclass) result = myclass.getResult(); end
使用以下信息构建 Java 包,可通过 Java 包编译器应用或
compiler.build.javaPackage进行操作:字段 值 Java 包名称 MyMATLABClass1类名 Class1要编译的文件 CreateMyMATLABClass.m
SetInput.m
Compute.m
GetResult.m例如,如果您使用的是
compiler.build.javaPackage,请输入:buildResults = compiler.build.javaPackage(["CreateMyMATLABClass.m", ... "SetInput.m","Compute.m","GetResult.m"], ... 'PackageName','MyMATLABClass1', ... 'ClassName','Class1');
有关详细信息,请参阅生成 Java 包并编译 Java 应用程序中的说明。
注意
您不需要手动将
MyMATLABClass.m文件添加到包中,因为编译器会在依赖关系分析期间自动将其包含进去。导航到包含生成的
MyMATLABClass1.jar包的文件夹。如果您使用了 Java 包编译器,该包位于build文件夹中。为访问 MATLAB 函数的应用程序编写源代码。此示例的代码如下所示。
打开命令提示符窗口并导航到包含
javadriver.java和MyMATLABClass.jar文件夹。使用
javadriver.java编译javac应用程序。在 Windows® 上,键入:
javac -classpath "matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\MyMATLABClass.jar javadriver.java在 UNIX® 上,键入:
javac -classpath "matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./MyMATLABClass.jar javadriver.java
将
替换为 MATLAB 或 MATLAB Runtime 安装文件夹的路径。例如,在 Linux® 上,路径可能为matlabroot/usr/local/MATLAB/R2025a。运行
javadriver应用程序。在 Windows 上,键入:
java -classpath .;"matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\MyMATLABClass.jar javadriver在 Linux 上,键入:
java -classpath .:"matlabroot/toolbox/javabuilder/jar/javabuilder.jar":.\MyMATLABClass.jar javadriver注意
如果您在 Mac 64 位平台上运行该应用程序,则必须在 Java 命令中添加
-d64标志。
javadriver 程序显示以下输出:
--- USE: Constructors --- 1 2.2361 --- Done. ---
另请参阅
compiler.build.javaPackage | Java 包编译器
