Руководство по графическому интерфейсу

Графический интерфейс проводит каждую задачу защиты как мастер. Порядок такой:

Тип приложения → Ввод, среда выполнения и платформа → Простые или расширенные параметры → Средство запуска Windows EXE (по желанию) → Проверка вывода → Выполнение

1. Тип приложения

Пункт интерфейсаВводВыводКоманда CLI
Java приложениеОбычный исполняемый JARПолный каталог приложенияjavaapp
Spring BootПриложение Spring BootПолный каталог приложенияspringboot
Tomcat WARWARКаталог со встроенным Tomcattomcat
Шифрование библиотекиЛюбой JARОдин архив P4JXencode

При неверном типе главный класс, зависимости, веб-ресурсы или средство запуска могут быть обработаны неправильно.

Страница выбора типа приложения

2. Ввод, среда выполнения и целевые платформы

За один проход мастер обрабатывает один JAR или WAR. Далее выбираются:

  • Версия Java: 8, 11, 17, 21 или 25. По умолчанию — 21.
  • Целевые платформы: можно выбрать сразу несколько.
  • Режим: простой или расширенный.
  • Создать EXE приложения для Windows: по желанию; требуется хотя бы одна целевая платформа Windows.

Если выбрано несколько платформ, для каждой создаётся отдельный каталог.

Страница ввода, версии Java и целевых платформ

3. Простой режим

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

  • классы, которые рекомендуется исключить;
  • нужно ли включать JavaFX и WebView;
  • нужно ли включать ZIP-слой для сканеров;
  • нужно ли переходить на суффикс архива .jar;
  • какой макет использовать для Spring Boot;
  • использовать Tomcat 9 или 10.1.

Сканирование даёт рекомендации на основе статического анализа, а не результаты реального запуска. Собранное приложение обязательно проверьте на целевой платформе.

4. Расширенный режим

В расширенном режиме можно вручную задать суффикс архива, решить, отключать ли JIT, добавить слой для сканеров, задать параметры JVM, определить правила исключения и настроить параметры, свойственные каждому типу приложения.

Полные указания, значение каждого параметра, значения по умолчанию и различия между типами приложений приведены в разделе Настройки расширенного режима Protector4J.

Расширенные параметры обычного приложения Java

5. Средство запуска Windows EXE

Если на странице ввода отметить Создать EXE приложения для Windows (x64/x86/ARM64), мастер добавит страницу средства запуска после страницы параметров. Этот флажок расположен до разветвления на простой и расширенный режим, поэтому EXE можно получить в любом из них. Без флажка мастер сразу переходит к проверке вывода.

На странице средства запуска задаются:

  • Имя файла EXE: если оставить пустым, берётся имя входного файла; для Tomcat используется tomcat.
  • Режим средства запуска: консоль или графический режим без окна консоли.
  • Значок Windows: необязательный файл .ico.
  • Параметры запуска JVM: по одному в строке. При включённом EXE это поле появляется только здесь, а введённое записывается и в EXE, и в сценарии запуска.
  • Сведения о версии Windows: версия файла, версия продукта, название компании, название продукта, описание файла и сведения об авторских правах.

Шифрование библиотеки выдаёт единственный файл архива, поэтому такого параметра там нет. Подробности — в разделе Создание средства запуска Windows EXE.

6. Правила исключения

В графическом интерфейсе и в командной строке используется одна и та же запись:

com.example.SecretService   только этот класс
com.example.service.*       только этот пакет
com.example.service.**      этот пакет и все вложенные

Если исключить DTO, сущности, контроллеры, классы конфигурации, мосты JNI и всё, что требует изменения байт-кода во время выполнения, под защитой останется только основная бизнес-логика.

7. Проверка вывода

На последней странице отображаются:

  • входной файл и тип приложения;
  • версия Java и целевые платформы;
  • включён ли JavaFX;
  • формат архива, параметр JIT, слой и макет Spring;
  • область защиты, правила исключения и контекстный путь Tomcat.

Отметьте Создание новой папки, чтобы записать результат в подкаталог p4jx-xxxx с уникальным именем внутри каталога вывода. При добавлении приложения в существующий пакет Tomcat этот пункт недоступен: там нужно прямо указать уже имеющийся каталог.

Проверка вывода и сводка параметров

8. Экспорт и загрузка файлов задания

И страница расширенных параметров, и итоговая страница позволяют экспортировать файл задания p4j-task.yml, доступный для ручного редактирования. В нём сохраняются уже определённые настройки:

  • ввод, тип приложения и параметры вывода;
  • версия Java и одна или несколько целевых платформ;
  • область защиты, совместимость и параметры сборки.

В комментариях файла приводятся и вызов p4j --task-file <файл>, и равнозначная командная строка. Электронная почта и пароль учётной записи в файл задания не записываются; без настоящих учётных данных во время выполнения получится пробная сборка.

Пункт Загрузить файл задания в верхней части окна повторно считывает YAML, восстанавливает задание и сразу открывает итоговую страницу. Прежние p4j-encrypt-run.sh и .bat по-прежнему можно импортировать, но интерфейс больше не экспортирует сценарии запуска.