«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:

  1. The system used for packaging must contain the application to be packaged, a JDK, and software needed by the packaging tool.
  2. And, it needs to have the underlying packaging tools used by jpackage:
    • RPM, DEB on Linux: On Red Hat Linux, we need the rpm-build package; on Ubuntu Linux, we need the fakeroot package
    • PKG, DMG on macOS: Xcode command line tools are required when the –mac-sign option is used to request that the package be signed, and when the –icon option is used to customize the DMG image
    • EXE, MSI on Windows: On Windows, we need the third party tool WiX 3.0 or later
  3. Finally, the application packages must be built on the target platform. This means to package the application for multiple platforms, we must run the packaging tool on each platform.

5. Создание пакета

Давайте создадим образец пакета для JAR приложения. Как упоминалось в предыдущем разделе, JAR-файл приложения должен быть предварительно создан, и он будет использоваться в качестве входных данных для инструмента jpackage.

Например, мы можем использовать следующую команду для создания пакета:

jpackage --input target/ \
  --name JPackageDemoApp \
  --main-jar JPackageDemoApp.jar \
  --main-class com.baeldung.java14.jpackagedemoapp.JPackageDemoApp \
  --type dmg \
  --java-options '--enable-preview'

Давайте рассмотрим каждую из используемых опций:

    —input: расположение входных jar-файлов â – имя: дайте имя устанавливаемому пакету – main-jar: файл JAR для запуска при запуске приложения – main-class: имя основного класса в JAR для запуска при запуске приложения. Это необязательно, если файл MANIFEST.MF в основном JAR-файле содержит имя основного класса. — тип: какой установщик мы хотим создать? Это зависит от базовой ОС, в которой мы запускаем команду jpackage. В macOS мы можем передать тип пакета как DMG или PKG. Инструмент поддерживает параметры MSI и EXE в Windows и параметры DEB и RPM в Linux. – java-options: параметры для передачи среде выполнения Java

Приведенная выше команда создаст для нас файл JPackageDemoApp.dmg.

Затем мы можем использовать этот файл для установки приложения на платформе macOS. После установки мы сможем использовать приложение, как и любое другое программное обеспечение.

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

В этой статье мы увидели использование инструмента командной строки jpackage, представленного в Java 14.