Задайте опции встраивания и экстракции для развертываемого архива Java

Когда вы развертываете Java® архив, по умолчанию, архивные данные извлечены из файла JAR без отдельного развертываемого архива или packageNamemcr папка необходима на целевой машине. Это поведение полезно, когда пространство памяти в файловой системе ограничивается.

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

Опции экстракции Используя класс MWComponentOptions

Выберите Options

Выберите из следующего CtfSource или ExtractLocation опции инстанцирования, чтобы настроить, как MATLAB® Время выполнения управляет развертываемым архивным содержимым с 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 в конструктора, чтобы задать местоположение файловой системы, которое будет использоваться, или можно использовать один из этих предопределенных, статических итоговых экземпляров:

    ЗначениеDescriptin
    MWCtfExtractLocation.EXTRACT_TO_CACHE

    Используйте, чтобы указать, что развертываемое архивное содержимое должно быть помещено в кэш компонента MATLAB Runtime. Эта опция является настройкой по умолчанию для R2007a и вперед.

    MWCtfExtractLocation.EXTRACT_TO_COMPONENT_DIR

    Используйте, когда это необходимо, чтобы определить местоположение JAR или .class файлы от того, где компонент загрузился. Если местоположение найдено (e.g., это находится в файловой системе), затем развертываемые архивные данные извлечены в ту же папку. Эта опция наиболее тесно совпадает с поведением R2007a и предыдущих релизов.

Примечание

Развертываемые архивы извлечены по умолчанию к temp\user_name\mcrCachen.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 команда, с желаемым пределом размера кэша.

Похожие темы