Перейти к основному содержимому

Изучение jrecreate

· 4 мин. чтения

1. Введение в EJDK

EJDK (Embedded Java Development Kit) был представлен Oracle для решения проблемы предоставления двоичных файлов для всех доступных встроенных платформ. Мы можем загрузить последнюю версию EJDK с сайта Oracle здесь .

Проще говоря, он содержит инструменты для создания JRE для конкретных платформ.

2. воссоздать

EJDK предоставляет jrecreate.bat для Windows и jrecreate.sh для платформ Unix/Linux. Этот инструмент помогает в сборке пользовательских JRE для платформ, которые мы хотим использовать, и был представлен:

  • свести к минимуму выпуск двоичных файлов Oracle для каждой платформы
  • упростить создание настраиваемых JRE для других платформ

Следующий синтаксис используется для выполнения команды jrecreate ; в Unix/Linux:

$jrecreate.sh -<option>/--<option> <argument-if-any>

И в Windows:

$jrecreate.bat -<option>/--<option> <argument-if-any>

Обратите внимание, что мы можем добавить несколько параметров для одного создания JRE. Теперь давайте взглянем на некоторые параметры, доступные для инструмента.

3. Опции для jrecreate

3.1. Назначения

Параметр назначения является обязательным и указывает каталог, в котором должна быть создана целевая JRE:

$jrecreate.sh -d /SampleJRE

При выполнении вышеуказанной команды JRE по умолчанию будет создана в указанном месте. Вывод командной строки будет:

Building JRE using Options {
ejdk-home: /installDir/ejdk1.8.0/bin/..
dest: /SampleJRE
target: linux_i586
vm: all
runtime: jre
debug: false
keep-debug-info: false
no-compression: false
dry-run: false
verbose: false
extension: []
}

Target JRE Size is 55,205 KB (on disk usage may be greater).
Embedded JRE created successfully

Из приведенного выше результата видно, что целевая JRE создается в указанном целевом каталоге. Все остальные параметры приняли значения по умолчанию.

3.2. Профили

Опция профиля используется для управления размером целевой JRE. Профили определяют функциональность подключаемого API. Если параметр профиля не указан, инструмент по умолчанию будет включать все API JRE:

$jrecreate.sh -d /SampleJRECompact1/ -p compact1

Будет создана JRE с профилем compact1 . Мы также можем использовать --profile вместо -p в команде. Вывод командной строки отобразит следующий результат:

Building JRE using Options {
ejdk-home: /installDir/ejdk1.8.0/bin/..
dest: /SampleJRECompact1
target: linux_i586
vm: minimal
runtime: compact1 profile
debug: false
keep-debug-info: false
no-compression: false
dry-run: false
verbose: false
extension: []
}

Target JRE Size is 10,808 KB (on disk usage may be greater).
Embedded JRE created successfully

Обратите внимание, что в приведенном выше результате параметр среды выполнения имеет значение compact1 . Также обратите внимание, что размер полученного JRE составляет чуть менее 11 МБ по сравнению с 55 МБ в предыдущем примере.

Существует три доступных варианта настройки профиля: compact1 , compact2 и compact3.

3.3. JVM

Параметр jvm используется для настройки нашей целевой JRE с помощью конкретных JVM в зависимости от потребностей пользователя. По умолчанию он включает все доступные JVM (клиентскую, серверную и минимальную), если параметры профиля и jvm не указаны:

$jrecreate.sh -d /SampleJREClientJVM/ --vm client

Будет создана JRE с клиентским JVM. Вывод командной строки отобразит следующий результат:

Building JRE using Options {
ejdk-home: /installDir/ejdk1.8.0/bin/..
dest: /SampleJREClientJVM
target: linux_i586
vm: Client
runtime: jre
debug: false
keep-debug-info: false
no-compression: false
dry-run: false
verbose: false
extension: []
}

Target JRE Size is 46,217 KB (on disk usage may be greater).
Embedded JRE created successfully

Обратите внимание, что в приведенном выше результате параметр vm имеет значение Client . С помощью этой опции мы также можем указать другие JVM, такие как сервер и минимальный .

3.4. Расширение

Параметр расширения используется для включения различных разрешенных расширений в целевую JRE. По умолчанию расширения не добавляются:

$jrecreate.sh -d /SampleJRESunecExt/ -x sunec

Будет создана JRE с расширением sunec (поставщик безопасности для криптографии на эллиптических кривых). Мы также можем использовать --extension вместо -x в команде. Вывод командной строки отобразит следующий результат:

Building JRE using Options {
ejdk-home: /installDir/ejdk1.8.0/bin/..
dest: /SampleJRESunecExt
target: linux_i586
vm: all
runtime: jre
debug: false
keep-debug-info: false
no-compression: false
dry-run: false
verbose: false
extension: [sunec]
}

Target JRE Size is 55,462 KB (on disk usage may be greater).
Embedded JRE created successfully

Обратите внимание, что в приведенном выше результате параметр расширения имеет значение sunec . С помощью этой опции можно добавить несколько расширений.

3.5. Другие опции

Помимо основных опций, описанных выше, jrecreate также предоставляет пользователям еще несколько опций:

  • --help : отображает сводку параметров командной строки для инструмента jrecreate.
  • --debug : создает JRE с поддержкой отладки
  • --keep-debug-info : хранит отладочную информацию из файлов класса и неподписанных файлов JAR.
  • --dry-run : выполняет пробный запуск без фактического создания JRE.
  • --no-compression : создает JRE с неподписанными файлами JAR в несжатом формате.
  • --verbose : отображает подробный вывод для всех команд jrecreate

4. Вывод

В этом руководстве мы изучили основы EJDK и то, как инструмент jrecreate используется для создания JRE для конкретной платформы.