«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 для конкретных платформ.