Развертываемые архивные данные извлекаются из файла JAR без отдельного развертываемого архива или папка, необходимая на целевой машине. Такое поведение полезно, когда пространство памяти в файл системе ограничено. packageName-mcr
Если вы не хотите, чтобы развертываемые архивные данные были извлечены по умолчанию, используйте MWComponentOptions класс, или использовать переменные окружения, чтобы указать, как обрабатывается извлечение и использование развертываемых архивных данных.
Выберите из следующего CtfSource или ExtractLocation опции экземпляра для настройки управления развертываемым архивным содержимым с помощью 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\ mcrCache n. nn
Используйте следующие методы, чтобы получить или задать местоположение, где развертываемый архив может быть найден для извлеченного компонента:
getCtfSource()
setCtfSource()
Используйте следующие методы, чтобы получить или задать местоположение, где должно быть найдено извлеченное развертываемое архивное содержимое:
getExtractLocation()
setExtractLocation()
Включение кэша компонентов MATLAB Runtime, использование развертываемого архивного содержимого уже в вашей системе. Если вы хотите включить кэш компонента MATLAB Runtime для сгенерированного Java® класс с использованием развертываемого архивного содержимого, уже находящегося в вашей файловой системе, экземпляр 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 и более поздних версиях. Пакет приложений содержит файлы, необходимые для выполнения. |
| MCR_CACHE_SIZE | Когда задан, эта переменная переопределяет размер кэша компонента по умолчанию. | Начальный предел для этой переменной составляет 32M (мегабайт). Однако это может быть изменено после того, как вы установите переменную первый раз. Отредактируйте файл .max_size, который находится в файле, обозначенном запуском mcrcachedir Команда, с желаемым пределом размера кэша. |
Чтобы извлечь развертываемый архив, скомпилируйте с помощью -C опция при вызове mcc.
Вы также можете реализовать это переопределение путем ввода -C в Settings редакторе приложения Library Compiler.
Можно хотеть использовать эту опцию для устранения проблем с развертываемым архивом, например, поскольку журналы и диагностические сообщения гораздо более видны.
Дополнительные сведения о развертываемом архиве см. в разделе Развертываемый архив.