主要内容

本页采用了机器翻译。点击此处可查看英文原文。

Java 应用程序动态指定 MATLAB Runtime 的选项

注意

使用 MWApplicationMWMCROption 类设置运行时选项仅适用于使用旧版 MWArray API 创建的 Java® 包。如果您正在使用 MATLAB® Data API for Java 进行开放,则这些初始化选项和类不适用。

Java 使用 MATLAB Compiler SDK™ 中基于 MWArray API 构建的包的应用程序,可以在初始化期间通过编程方式配置 MATLAB Runtime。这对于服务器端部署、无头环境,或者在 Java 虚拟机 (JVM) 与 MATLAB 环境之间存在二进制库冲突的系统非常有用。

要指定选项,请在 javabuilder.jar 中使用以下类:

  • com.mathworks.toolbox.javabuilder.MWApplication

  • com.mathworks.toolbox.javabuilder.MWMCROption

可指定的选项

通过向 MWApplication.initialize 传递 MWMCROption 的值来指定以下选项。

MATLAB Runtime 选项Java 选项描述
-nojvmMWMCROption.NOJVM

在不使用 JVM 的情况下启动运行时。

-nodisplayMWMCROption.NODISPLAY

不启用显示功能。仅限在 Linux® 系统上使用。

-logfile <file>MWMCROption.logFile("file")

将运行时输出写入指定的日志文件。

-outprocMWMCROption.OUTPROC

请在与 Java 应用程序不同的进程中启动运行时,以解决二进制库冲突。

注意

MATLAB Runtime 支持一些无法通过 MWMCROption 配置的额外启动选项,例如 -softwareopengl。请通过您部署环境所支持的启动机制使用这些选项,而不是使用此 Java API。

使用选项初始化 MATLAB Runtime

在创建生成的类的实例之前,请调用 MWApplication.initialize。您可以在单次初始化调用中传递多个选项。

import com.mathworks.toolbox.javabuilder.MWApplication;
import com.mathworks.toolbox.javabuilder.MWMCROption;

public class InitRuntime {
    public static void main(String[] args) throws Exception {

        // Initialize with multiple options: Process Isolation, No JVM, and Logging
        MWApplication.initialize(
            MWMCROption.OUTPROC,             // Resolve library conflicts
            MWMCROption.NOJVM,               // Disable internal JVM
            MWMCROption.logFile("mcr.log")   // Redirect output
        );

        // Create and use generated classes after initialization
        // MyComponentClass obj = new MyComponentClass();
        // obj.someMethod();
    }
}

查询初始化状态和选项值

使用 MWApplication 方法查询运行时是否已初始化,并获取当前有效的选项值。

MWApplication 方法描述
MWApplication.isMCRInitialized()

如果运行时已初始化,则返回 true

MWApplication.isMCRJVMEnabled()

如果运行时环境启用了 JVM,则返回 true

MWApplication.isMCRNoDisplaySet()

如果指定了 MWMCROption.NODISPLAY,则返回 true

MWApplication.getMCRLogfileName()

返回由 MWMCROption.logFile 指定的日志文件名。

默认值

如果在不提供任何输入的情况下调用 MWApplication.initialize(),运行时将使用以下默认值来配置可配置选项:

选项默认值
-nojvmfalse
-nodisplayfalse
-logfilenone
-outprocfalse

实现注意事项

  • 执行频率:每个进程调用 MWApplication.initialize 一次。这些选项在进程生命周期内有效,且在运行时启动后无法更改。

  • 自动初始化:如果未调用 MWApplication.initialize,则在首次创建生成的类的实例时,运行时会自动使用默认值进行初始化。

  • 库冲突解决:如果您的应用程序因主机环境和 MATLAB Runtime 使用的共享库版本冲突而遇到段错误或链接错误,请使用 MWMCROption.OUTPROC

  • 操作系统约束:在 Windows® 系统上不支持 MWMCROption.NODISPLAY 选项。

另请参阅

主题