exponenta event banner

Внедрение и извлечение развертываемого архива

Обзор

Данные развертываемого архива извлекаются из файла 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. Это параметр по умолчанию для 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 в редакторе параметров приложения Компилятор библиотеки.

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

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

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