Ответ
JLink (Java Linker) — это утилита, появившаяся в Java 9, которая позволяет создавать пользовательские образы времени выполнения (Custom Runtime Images). Она выполняет статическую линковку, включая в итоговый образ только те модули JDK и зависимости, которые действительно нужны приложению.
Основная цель: уменьшить размер развертываемого приложения и улучшить производительность за счет исключения неиспользуемых частей JRE.
Базовое использование:
# Создание образа для модульного приложения
jlink --module-path $JAVA_HOME/jmods:mlib --add-modules com.myapp --output myapp-image
Ключевые параметры:
--module-path: Путь к модулям приложения и JMOD-файлам JDK.--add-modules: Список корневых модулей для включения (транзитивные зависимости добавляются автоматически).--output: Директория для создания пользовательского образа.--compress: Сжатие для уменьшения размера (например,--compress=2).--strip-debug: Удаление отладочной информации.
Результат: В директории myapp-image будет содержаться минимальная JRE и ваше приложение. Запуск осуществляется через myapp-image/bin/java -m com.myapp/com.myapp.Main.