1. Обзор
В этом руководстве мы рассмотрим новый инструмент упаковки, представленный в Java 14 , под названием jpackage
.
2. Введение
jpackage
— это инструмент командной строки для создания собственных установщиков и пакетов для приложений Java.
Это функция инкубации в модуле jdk.incubator.jpackage
. Другими словами, параметры командной строки инструмента или макет приложения еще не стабильны. После стабилизации платформа Java SE или JDK включит эту функцию в выпуск LTE.
3. Почему jpackage?
Стандартной практикой при распространении программного обеспечения является доставка устанавливаемого пакета конечному пользователю. Этот пакет совместим с собственной платформой пользователя и скрывает внутренние зависимости и конфигурации установки. Например, мы используем файлы DMG в macOS и файлы MSI в Windows.
Это позволяет распространять, устанавливать и удалять приложения способом, знакомым нашим конечным пользователям.
jpackage
позволяет разработчикам создавать такие устанавливаемые пакеты для своих JAR-файлов. Пользователю не нужно явно копировать файл JAR или даже устанавливать Java для запуска приложения. Устанавливаемый пакет позаботится обо всем этом.
4. Предварительное условие упаковки
Ключевые предпосылки для использования команды jpackage
:
- Система, используемая для упаковки, должна содержать упаковываемое приложение, JDK и программное обеспечение, необходимое инструменту упаковки.
- И он должен иметь базовые инструменты упаковки, используемые
jpackage
:
- RPM, DEB в Linux: В Red Hat Linux нам нужен пакет
rpm-build ;
в Ubuntu Linux нам нужен пакетfakeroot
- PKG, DMG в macOS: инструменты командной строки Xcode необходимы, когда параметр
–mac-sign
используется для запроса подписи пакета и когда параметр–icon
используется для настройки образа DMG. - EXE, MSI в Windows: в Windows нам нужен сторонний инструмент WiX 3.0 или более поздней версии.
- Наконец, пакеты приложений должны быть созданы на целевой платформе. Это означает, что для упаковки приложения для нескольких платформ мы должны запустить инструмент упаковки на каждой платформе.
5. Создание пакета
Давайте создадим образец пакета для JAR-файла приложения. Как упоминалось в предыдущем разделе, JAR-файл приложения должен быть предварительно создан, и он будет использоваться в качестве входных данных для инструмента jpackage
.
Например, мы можем использовать следующую команду для создания пакета:
jpackage --input target/ \
--name JPackageDemoApp \
--main-jar JPackageDemoApp.jar \
--main-class com.foreach.java14.jpackagedemoapp.JPackageDemoApp \
--type dmg \
--java-options '--enable-preview'
Пройдемся по каждому из используемых вариантов:
--input
: расположение входных jar-файлов.--name
: дать имя устанавливаемому пакету--main-jar
: файл JAR для запуска при запуске приложения.--main-class
: имя основного класса в JAR для запуска при запуске приложения. Это необязательно, если файлMANIFEST.MF
в основном JAR-файле содержит имя основного класса.--type
: какой установщик мы хотим создать? Это зависит от базовой ОС, в которой мы запускаем командуjpackage
. В macOS мы можем передать тип пакета как DMG или PKG. Инструмент поддерживает параметры MSI и EXE в Windows и параметры DEB и RPM в Linux.--java-options
: параметры для передачи среде выполнения Java.
Приведенная выше команда создаст для нас файл JPackageDemoApp.dmg .
Затем мы можем использовать этот файл для установки приложения на платформе macOS. После установки мы сможем использовать приложение, как и любое другое программное обеспечение.
6. Заключение
В этой статье мы увидели использование инструмента командной строки jpackage , представленного в Java 14.