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
| Opciones | Descripción |
|---|---|
--no-jit | Se prohíbe el método de protección JIT y se cambia a ejecución por interpretador. |
--zip-overlay off|scanner | Desactivar o añadir la vista de compatibilidad ZIP del escáner; valor predeterminado: off. |
--compat-scan | Escanear y salir; no se requieren parámetros de salida. |
--compat-apply | Escanear, aplicar recomendaciones conservadoras y luego continuar con la codificación. |
--no-compat-excludes | En 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:
| Opciones | Descripción |
|---|---|
--archive-suffix p4jx|jar | Sufijo 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]
| Opciones | Descripció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]
| Opciones | Descripció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-webview | Incluir obligatoriamente WebView. |
--no-javafx-webview | Excluir obligatoriamente WebView. |
--no-javafx | Desactivar 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|separate | Imprime el diseño; por defecto, se utiliza p4jx-fat. |
--javafx [<dir>] | Habilita JavaFX; permite especificar un directorio opcional para recursos locales. |
--javafx-webview | Exige la inclusión de WebView. |
--no-javafx-webview | Exige la exclusión de WebView. |
--no-javafx | Desactivar explícitamente JavaFX |
6. tomcat
p4j tomcat input.war output-dir [options]
| Opciones | Descripción |
|---|---|
--exclude <rules> | Excluir clases o paquetes de WEB-INF/classes |
--context </path> | Ruta de contexto, valor predeterminado: /app |
--append-app | Incluir la aplicación en un paquete P4JX Tomcat existente |
--tomcat-version auto|9|10 | Detección automática o versión forzada, valor predeterminado en la CLI: auto |
--precompile-jsp | Forzar la precompilación de JSP |
--no-precompile-jsp | Prohibició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
| Variables | Descripción |
|---|---|
P4JX_RUNTIME_JAVA_VERSION | Líneas de entrenamiento de Java para el empaquetado de nivel superior: 8/11/17/21/25 |
P4JX_RUNTIME_PLATFORM | ID de la plataforma de destino |
P4JX_RUNTIME_CACHE_DIR | Directorio de caché de descargas de VLX JRE |
APP_JAVA_OPTS | Añ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.