Данные развертываемого архива извлекаются из файла JAR без отдельного развертываемого архива или требуется папка на конечном компьютере. Такое поведение полезно, когда пространство хранения в файловой системе ограничено. packageNamemcr
Если по умолчанию не требуется извлекать развертываемые архивные данные, используйте либо 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. Это параметр по умолчанию для R2007a и пересылки.
MWCtfExtractLocation.EXTRACT_TO_COMPONENT_DIR - Используется, когда вы хотите найти JAR или .class файлы, из которых загружен компонент. Если местоположение найдено (например, оно находится в файловой системе), то развертываемые архивные данные извлекаются в ту же папку. Этот параметр наиболее точно соответствует поведению R2007a и предыдущих версий.
Примечание
Развертываемые архивы извлекаются по умолчанию в .temp\user_name\mcrCachen.nn
Используйте следующие методы, чтобы получить или задать расположение, в котором можно найти развертываемый архив для извлеченного компонента:
getCtfSource()
setCtfSource()
Используйте следующие методы, чтобы получить или задать расположение, в котором должно находиться извлеченное развертываемое архивное содержимое:
getExtractLocation()
setExtractLocation()
Включение кэша компонентов среды выполнения MATLAB с использованием развертываемого архивного содержимого, уже имеющегося в системе. Если требуется включить кэш компонентов среды выполнения MATLAB для созданного класса 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 в редакторе параметров приложения Компилятор библиотеки.
Этот параметр можно использовать для устранения неполадок с развертываемым архивом, например, поскольку журнал и диагностические сообщения гораздо более заметны.
Дополнительные сведения о развертываемом архиве см. в разделе Развертываемый архив.