Развертываемая архивная интеграция и экстракция

Обзор

Развертываемые архивные данные извлекаются из файла JAR без отдельного развертываемого архива или packageName-mcr папка, необходимая на целевой машине. Такое поведение полезно, когда пространство памяти в файл системе ограничено.

Если вы не хотите, чтобы развертываемые архивные данные были извлечены по умолчанию, используйте MWComponentOptions класс, или использовать переменные окружения, чтобы указать, как обрабатывается извлечение и использование развертываемых архивных данных.

Используйте класс 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.

Можно хотеть использовать эту опцию для устранения проблем с развертываемым архивом, например, поскольку журналы и диагностические сообщения гораздо более видны.

Для получения дополнительной информации

Дополнительные сведения о развертываемом архиве см. в разделе Развертываемый архив.