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

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

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

2. jrecreate

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 (клиентскую, серверную и минимальную), если не указаны параметры profile и 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 — — пробный запуск: выполняет пробный запуск без фактического создания JRE — «— без сжатия: создает JRE с неподписанными файлами JAR в несжатом формате — — подробный: отображает подробный вывод для всех команд jrecreate

4. Заключение

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