Referencia de parámetros CLI

Los ejemplos de este documento utilizan el comando p4j proporcionado después de la instalación. La interfaz gráfica de Windows se instala mediante .exe, mientras que la de macOS se instala a través de Protector4J.app dentro de .dmg; la forma de instalación de la interfaz gráfica no modifica la sintaxis CLI que se muestra a continuación. Si el instalador no incluyó la CLI en PATH, ejecútela desde la entrada de línea de comandos proporcionada en el directorio de instalación de Protector4J.

p4j --help

1. Comandos

p4j encode     <input.jar> <output.p4jx|output.jar> [options]
p4j javaapp    <input.jar> <output-dir> [options]
p4j springboot <input.jar> <output-dir> [options]
p4j tomcat     <input.war> <output-dir> [options]

También se puede omitir el nombre del comando en la capa inferior encode:

p4j input.jar output.p4jx [options]

2. Opciones generales

OpcionesDescripción
--no-jitSe prohíbe el método de protección JIT y se cambia a ejecución por interpretador.
--zip-overlay off|scannerDesactivar o añadir la vista de compatibilidad ZIP del escáner; valor predeterminado: off.
--compat-scanEscanear y salir; no se requieren parámetros de salida.
--compat-applyEscanear, aplicar recomendaciones conservadoras y luego continuar con la codificación.
--no-compat-excludesEn conjunto con --compat-apply, no se añaden automáticamente las clases de exclusión recomendadas.
--account-email <email>Correo electrónico de la cuenta de licencia.
--account-password <password>Contraseña de la cuenta de licencia.
--app-id <id>Identificador de la aplicación especificada
--license-expires-in <sec>Solicita el número de segundos válidos para la prueba, sujeto a las políticas del servidor

Comandos de empaquetado de nivel superior disponibles:

OpcionesDescripción
--archive-suffix p4jx|jarSufijo del archivo archivado generado; por defecto, p4jx; no se modifica el formato interno
--jvm-option <option>Escribe scripts de inicio para macOS/Linux y Windows; cada parámetro se utiliza una vez, pero se puede repetir

3. encode

p4j encode input.jar output.p4jx [options]
OpcionesDescripción
--runtime-major <N>Especificar el destino de despliegue de la vista de recursos/Multi-Release; valor predeterminado: 21

4. javaapp

p4j javaapp input.jar output-dir [options]
OpcionesDescripción
--main <class>Especificar la clase principal de inicio
--protect <rules>Reglas para las clases/paquetes que deben recibir protección, separadas por comas; por defecto, se aplica a todas las clases.
--exclude <rules>Excluir de la alcance de protección.
--javafx [<dir>]Habilitar JavaFX; directorio opcional para materiales locales.
--javafx-webviewIncluir obligatoriamente WebView.
--no-javafx-webviewExcluir obligatoriamente WebView.
--no-javafxDesactivar explícitamente JavaFX.

5. springboot

p4j springboot input.jar output-dir [options]
Opciones.Descripción.
--main <class>Se especifica la clase principal de Spring Boot; por defecto, se lee el Manifest.
--protect <rules>Proporciona protección a las clases que coinciden en BOOT-INF/classes.
--exclude <rules>Excluye clases o paquetes.
--protect-lib <globs>Ofrece protección a los JAR de BOOT-INF/lib que coincidan, separados por comas.
--layout p4jx-fat|fat|separateImprime el diseño; por defecto, se utiliza p4jx-fat.
--javafx [<dir>]Habilita JavaFX; permite especificar un directorio opcional para recursos locales.
--javafx-webviewExige la inclusión de WebView.
--no-javafx-webviewExige la exclusión de WebView.
--no-javafxDesactivar explícitamente JavaFX

6. tomcat

p4j tomcat input.war output-dir [options]
OpcionesDescripción
--exclude <rules>Excluir clases o paquetes de WEB-INF/classes
--context </path>Ruta de contexto, valor predeterminado: /app
--append-appIncluir la aplicación en un paquete P4JX Tomcat existente
--tomcat-version auto|9|10Detección automática o versión forzada, valor predeterminado en la CLI: auto
--precompile-jspForzar la precompilación de JSP
--no-precompile-jspProhibición de la precompilación de JSP

7. Sintaxis de las reglas

com.example.SecretService   Clase individual
com.example.service         Coincidencia de paquetes directos
com.example.service.*       Coincidencia de paquetes directos
com.example.service.**      Paquete y todos sus subpaquetes
com/example/Secret.class    Ruta de la entrada class

Se separan varias reglas con comas; cuando en el shell aparezca *, se deben usar comillas:

--protect 'com.example.**' --exclude 'com.example.dto.**,com.example.config.**'

8. Variables de entorno

VariablesDescripción
P4JX_RUNTIME_JAVA_VERSIONLíneas de entrenamiento de Java para el empaquetado de nivel superior: 8/11/17/21/25
P4JX_RUNTIME_PLATFORMID de la plataforma de destino
P4JX_RUNTIME_CACHE_DIRDirectorio de caché de descargas de VLX JRE
APP_JAVA_OPTSAñadir temporalmente parámetros JVM al ejecutar la aplicación generada; compatible con macOS/Linux y Windows.

Equivalentes de las propiedades del sistema Java para escenarios avanzados donde se desea iniciar directamente el JAR del codificador:

-Dp4jx.runtime.java.version=<N>
-Dp4jx.runtime.platform=<platform>
-Dp4jx.runtime.cache.dir=<dir>

9. Ejemplos de automatización

P4JX_RUNTIME_JAVA_VERSION=21 \
P4JX_RUNTIME_PLATFORM=linux-x64 \
p4j springboot build/app.jar release/linux-x64 \
  --compat-apply \
  --protect 'com.example.service.impl.**' \
  --exclude 'com.example.dto.**,com.example.config.**' \
  --jvm-option -Xms1g \
  --jvm-option -Xmx2g \
  --app-id com.example.app

Las opciones explícitas de protección/exclusión y de diseño sobrescriben las sugerencias automáticas. Se recomienda registrar los parámetros finales, el SHA-256 de la entrada y la versión de la herramienta como parte de la trazabilidad de la publicación.

Ejemplos de GUI, CLI, edición directa de run.sh/run.bat, scripts de inicio de Tomcat y Windows PowerShell se encuentran en Configuración de parámetros de inicio de JVM.