Защита Java-библиотек
Команда Library Encryption соответствует низкоуровневой команде encode; она генерирует лишь один защищённый архив, не копирует компоненты времени выполнения и не создаёт скрипты запуска приложения.
1. Работа с интерфейсом GUI
-
На странице типа приложения выберите Library Encryption. Если требуется пакет для непосредственного запуска, следует выбрать Java Application, Spring Boot или Tomcat WAR.

-
Выберите исходный JAR, версию Java, совместимую с реальной средой загрузки, и целевую платформу, затем выберите простой или расширенный режим. В выходной библиотеке отсутствуют элементы
vlxjre, но эти параметры всё равно используются для определения идентичности времени выполнения архива; не следует смешивать результаты для разных платформ с целью уменьшения количества файлов.
-
В простом режиме происходит сканирование исходного JAR с автоматическим применением рекомендаций сканера ZIP overlay и суффиксов архивов, поддерживаемых функцией Library Encryption. Все элементы
.classв исходном JAR всё равно шифруются, в то время как остальные ресурсы остаются незашифрованными. -
В расширенном режиме параметры можно настраивать по необходимости:
- Disable JIT for protected methods: позволяет выполнять защищённые методы только в интерпретаторе;
- Append scanner ZIP overlay: предоставляет публичные ресурсы и заглушки метаданных инструментам, которые напрямую анализируют центральный каталог ZIP;
- Compatibility scan…: сканирование рисков совместимости, связанных с доступом к ZIP, предположениями относительно расширений файлов, JNI/нативными классами и чтением байт-кода во время выполнения.
-
На странице вывода выбирается полное имя файла вывода, обычно с использованием
.p4jx;.jarиспользуется только тогда, когда интегрируемая программа жёстко задаёт расширение.jar. Рекомендации по выбору или сканированию на странице «Расширенные настройки» с использованием Archive suffix синхронизируют расширения.p4jx/.jarдля выбранных файлов. Проверьте версию Java, целевую платформу, JIT, настройки scanner overlay, затем нажмите Run protection.Для задач, предназначенных для одной платформы, используется выбранный точный путь к файлу. При выборе нескольких целевых платформ GUI создаёт подкаталоги в каталоге, где находится файл, в зависимости от платформы, и сохраняет соответствующие архивы там.
2. Сферы применения
- Защита собственных JAR-файлов, являющихся частью других контролируемых приложений P4JX;
- Загрузка архива P4JX с помощью существующего запускача;
- Требуется самостоятельное управление полным каталогом доставки для сложных интеграций.
Если целью является обычное приложение, готовое к запуску, Spring Boot или Tomcat, используйте соответствующие команды пакетирования.
3. Основные команды
p4j encode library.jar library.p4jx
Можно также использовать сокращения:
p4j library.jar library.p4jx
encode записывает полное имя файла вывода, предоставленное пользователем; поэтому оба приведенных ниже варианта находятся в формате P4JX:
p4j encode library.jar library.p4jx
p4j encode library.jar library.jar
4. ZIP overlay
p4j encode library.jar library.p4jx \
--zip-overlay scanner
overlay содержит только публичные ресурсы, каталоги и метаданные-шаблоны для совместимости с инструментами, способными напрямую анализировать центральный каталог ZIP. Он не раскрывает реальных методов защиты и не превращает P4JX в обычный JAR.
5. Требования к времени выполнения
Нижний уровень encode не генерирует vlxjre; пользователь обязан использовать среду выполнения VLX, совместимую с идентификатором, использованным при кодировании. Не следует:
- Загружать с помощью обычного OpenJDK/Oracle JDK;
- Копировать
lib/modulesили библиотеки типа native из архива другой версии; - Смешивать среды выполнения для разных целевых платформ, линий сборки JDK или задач кодирования с архивом.
Для обычных проектов предпочтительно использовать команды высокого уровня для автоматического поддержания этих связей.
6. Разрешение
При генерации архива необходимо успешно получить и встроить лицензию, выданную сервером. Для лицензированных аккаунтов и пробного режима действует одинаковый процесс проверки архива. В скриптах задач для автоматизированных сред не следует жёстко задавать пароли.