Java - Инструменты упаковки

Привет, будущие маги Java! ? Сегодня мы отправляемся в захватывающее путешествие в мир инструментов упаковки Java. В качестве вашего дружелюбного соседа по компьютерным наукам, я здесь, чтобы вести вас по этому приключению шаг за шагом. Так что возьмите виртуальные рюкзаки и погружайтесь вместе с нами!

Java - Packaging Tools

Что такое инструменты упаковки Java?

Прежде чем мы начнем кодировать, давайте понимем, для чего нужны инструменты упаковки. Представьте себе, что вы приготовили вкусный пирог (ваша программа на Java), и теперь хотите поделиться им со своими друзьями. Вы бы не просто дали им груду ингредиентов, правда? Вы бы упаковали их красиво в коробку. Вот именно это делают инструменты упаковки для вашего кода!

Почему нужен jpackager

Вот и наш супергерой в мире упаковки Java — jpackager! ?‍♂️ Это как магическая коробка, которая берет ваше приложение Java и превращает его в аккуратный пакет, который может работать на разных операционных системах. Классно, правда?

Начало работы с jpackager

Требования

Прежде чем мы сможем использовать jpackager, нам нужно убедиться, что у нас есть необходимые инструменты:

  1. Java Development Kit (JDK) 14 или новее
  2. Ваше приложение на Java (очевидно!)
  3. Кружка кофе (необязательно, но настоятельно рекомендуется) ☕

Опции командной строки для jpackager

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

Опция Описание
--name Устанавливает имя вашего приложения
--input Указывает каталог, содержащий файлы вашего приложения
--main-jar Указывает на ваш основной JAR файл
--main-class Идентифицирует ваш основной класс
--dest Устанавливает каталог назначения для пакета
--type Выбирает тип пакета (например, app-image, exe, msi, dmg)

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

Теперь давайте создадим наш первый пакет! ? Начнем с простой программы "Hello, World!".

Шаг 1: Создайте ваше приложение на Java

Сначала давайте напишем наш код на Java. Создайте файл с именем HelloWorld.java:

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}

Эта маленькая программа просто выводит "Hello, World!" в консоль. Ничего особенного, но отличный старт!

Шаг 2: Компилируйте ваш код на Java

Откройте ваш терминал и скомпилируйте файл Java:

javac HelloWorld.java

Это создаст файл HelloWorld.class.

Шаг 3: Создайте JAR файл

Теперь упакуем наш класс в JAR:

jar cfe HelloWorld.jar HelloWorld HelloWorld.class

Эта команда создает JAR файл с именем HelloWorld.jar с HelloWorld как основным классом.

Шаг 4: Используйте jpackager

Настал интересный момент! Давайте использовать jpackager, чтобы создать распространяемый пакет:

jpackager --name HelloWorld --input . --main-jar HelloWorld.jar --main-class HelloWorld --type app-image

Разберем это заклинание:

  • --name HelloWorld: Называем наше приложение "HelloWorld"
  • --input .: Использует текущий каталог как входной
  • --main-jar HelloWorld.jar: Указывает на наш JAR файл
  • --main-class HelloWorld: Указывает на наш основной класс
  • --type app-image: Создает базовое приложение

Пример пакета

После выполнения команды jpackager, вы найдете новый каталог с именем HelloWorld в текущей папке. Внутри вы увидите что-то вроде этого:

HelloWorld/
├── bin/
│   └── HelloWorld
├── lib/
│   └── app/
│       └── HelloWorld.jar
└── runtime/
└── ...

Поздравления! ? Вы только что создали свой первый пакет Java. Этот каталог содержит все необходимое для запуска вашего приложения на текущей операционной системе.

Заключение

Итак, что же мы получили, друзья? Мы перешли от простого файла Java к полностью упакованному приложению. Помните, упаковка — это как упаковка подарков с вашим кодом — это делает его проще для распространения и использования.

Как мы заканчиваем (и это jeux de mots), вот небольшая программистская шутка для вас:

Почему разработчики Java носят очки? Потому что они не C# (не видят резко)! ?

Постарайтесь, упаковывайте и, что самое важное, наслаждайтесь Java! До встречи на следующем уроке, счастливого кодирования! ?‍??‍?

Credits: Image by storyset