主要内容

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

定义可部署 Java 存档的嵌入和提取选项

当您部署 Java® 存档时,默认情况下,存档数据将从 JAR 文件中提取,而目标计算机上不需要单独的可部署存档或 packageName­mcr。当文件系统上的存储空间有限时,此行为很有帮助。

如果您不想默认提取可部署存档数据,您可以使用 MWComponentOptions 类或环境变量来指定提取和利用可部署存档数据的选项。

使用 MWComponentOptions 类提取选项

选择选项

从以下 CtfSourceExtractLocation 实例选项中进行选择,以自定义 MATLAB® Runtime 如何使用 MWComponentOptions 管理可部署存档内容:

  • CtfSource - 此选项指定在何处可以找到提取组件的可部署存档。它定义了由可部署存档的位组成的二进制数据流。以下值是扩展 MWCtfSource 的某种类型的对象:

    描述
    MWCtfSource.NONE

    表示没有可部署的存档可供提取。此选项意味着提取的可部署存档数据已经可以在文件系统的某个地方访问。该对象是 MWCtfSource 的公共、静态、最终实例。

    MWCtfFileSource

    表示可部署存档数据位于您指定的特定文件位置内。此类在其构造函数中采用 java.io.File 对象。

    MWCtfDirectorySource

    指示实例化组件时要扫描的文件夹。如果在您提供的文件夹中找到带有 .ctf 后缀的文件,则会从该文件加载可部署的存档位。此类在其构造函数中采用 java.io.File 对象。

    MWCtfStreamSource

    允许直接从指定的输入流读取和提取可部署的存档位。此类在其构造函数中采用 java.io.InputStream 对象。

  • ExtractLocation - 此选项指定提取的可部署存档内容的位置。由于 MATLAB Runtime 要求所有可部署的存档内容都位于文件系统的某个位置,因此请使用所需的 ExtractLocation 选项以及组件类型信息来定义唯一的位置。此选项的值是 MWCtfExtractLocation 类的一个实例。您可以通过将 java.io.Filejava.lang.String 传递到构造函数来指定要使用的文件系统位置,从而创建此类的实例,或者您可以使用以下预定义的静态最终实例之一:

    描述
    MWCtfExtractLocation.EXTRACT_TO_CACHE

    用于指示可部署存档内容将放置在 MATLAB Runtime 组件缓存中。该选项是 R2007a 及更高版本的默认设置。

    MWCtfExtractLocation.EXTRACT_TO_COMPONENT_DIR

    当您想要定位已加载组件的 JAR 或 .class 文件时使用。如果找到该位置(例如,它在文件系统中),则可部署的存档数据将被提取到同一文件夹中。此选项与 R2007a 及之前版本的行为最为接近。

注意

可部署存档默认提取至 temp\user_name\mcrCachen.nn

设置选项

使用以下方法获取或设置提取组件的可部署存档的位置:

  • getCtfSource()

  • setCtfSource()

使用以下方法获取或设置提取的可部署存档内容所在的位置:

  • getExtractLocation()

  • setExtractLocation()

启用 MATLAB Runtime 组件缓存

如果您想要为利用文件系统中已驻留的可部署存档内容生成的 Java 类启用 MATLAB Runtime 组件缓存,请使用以下语句实例化 MWComponentOptions

MWComponentOptions options = new MWComponentOptions();

// set options for the class by calling setter methods
// on 'options'
options.setCtfSource(MWCtfSource.NONE);
  options.setExtractLocation(
    new MWCtfExtractLocation("C:\\readonlydir\\MyModel_mcr"));

// instantiate the class using the desired options 
MyModel m = new MyModel(options);

使用环境变量的提取选项

使用以下环境变量来更改可部署存档提取的缓存大小和位置的默认设置。

环境变量目的注意
MCR_CACHE_ROOT当设置为您希望提取可部署存档的位置时,此变量会覆盖默认的每用户组件缓存位置。这仅适用于嵌入的 .ctf 文件。macOS 上,MATLAB R2020a 及更高版本中会忽略此变量。App 捆绑包包含运行时所需的文件。
MCR_CACHE_SIZE设置后,此变量会覆盖默认组件缓存大小。此变量的初始限制为 32M(兆字节),从 R2024b 开始为 1024M。不过,首次设置此变量后,可以更改此限制。请编辑文件 .max_size(该文件位于运行 mcrcachedir 命令指定的文件中),并使用所需的缓存大小限制。

另请参阅

主题