定义可部署 Java 存档的嵌入和提取选项
当您部署 Java® 存档时,默认情况下,存档数据将从 JAR 文件中提取,而目标计算机上不需要单独的可部署存档或 。当文件系统上的存储空间有限时,此行为很有帮助。packageNamemcr
如果您不想默认提取可部署存档数据,您可以使用 MWComponentOptions 类或环境变量来指定提取和利用可部署存档数据的选项。
使用 MWComponentOptions 类提取选项
选择选项
从以下 CtfSource 或 ExtractLocation 实例选项中进行选择,以自定义 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.File或java.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 命令指定的文件中),并使用所需的缓存大小限制。 |