Guía de la interfaz gráfica
La interfaz gráfica ejecuta cada tarea de protección como un asistente. El recorrido es este:
Tipo de aplicación → Entrada, entorno de ejecución y plataforma → Opciones simples o avanzadas → Iniciador EXE de Windows (opcional) → Revisión de la salida → Ejecución
1. Tipo de aplicación
| Opción de la interfaz | Entrada | Salida | Comando equivalente |
|---|---|---|---|
| Aplicación Java | JAR ejecutable corriente | Directorio de aplicación completo | javaapp |
| Spring Boot | Aplicación Spring Boot | Directorio de aplicación completo | springboot |
| Tomcat WAR | WAR | Directorio con Tomcat integrado | tomcat |
| Cifrado de bibliotecas | Cualquier JAR | Un único archivo P4JX | encode |
Si elige el tipo equivocado, es posible que la clase principal, las dependencias, los recursos web o el iniciador no se procesen correctamente.

2. Entrada, entorno de ejecución y plataformas de destino
Cada ejecución del asistente procesa un JAR o un WAR. A continuación se elige:
- Versión de Java: 8, 11, 17, 21 o 25. Por defecto es 21.
- Plataformas de destino: puede seleccionar varias a la vez.
- Modo: simple o avanzado.
- Generar un EXE de aplicación para Windows: opcional; requiere al menos una plataforma de destino Windows.
Si selecciona varias plataformas, la herramienta genera un directorio independiente para cada una.

3. Modo simple
El modo simple sirve para casi cualquier primer empaquetado. Al salir de la página de entrada, la herramienta ejecuta un escaneo de compatibilidad y decide a partir del resultado:
- qué clases conviene excluir;
- si se activan JavaFX y WebView;
- si se activa la capa ZIP para escáneres;
- si se cambia al sufijo de archivo
.jar; - qué diseño se usa para Spring Boot;
- si se emplea Tomcat 9 o 10.1.
El escaneo produce recomendaciones a partir de un análisis estático, no los resultados de una ejecución real. Pruebe siempre la aplicación empaquetada en la plataforma de destino.
4. Modo avanzado
En el modo avanzado puede fijar el sufijo del archivo a mano, decidir si desactiva el JIT, añadir la capa para escáneres, establecer opciones de la JVM, definir reglas de exclusión y configurar las opciones propias de cada tipo de aplicación.
Las instrucciones completas, el significado de cada opción, los valores por defecto y las diferencias entre tipos están en Ajustes del modo avanzado de Protector4J.

5. Iniciador EXE de Windows
Si marca Generar un EXE de aplicación para Windows (x64/x86/ARM64) en la página de entrada, el asistente añade una página de iniciador después de la de opciones. La casilla está antes de la bifurcación entre modo simple y avanzado, así que ambos modos pueden generar un EXE. Si no la marca, el asistente pasa directamente a la revisión de la salida.
En la página del iniciador puede indicar:
- Nombre del archivo EXE: si lo deja vacío se usa el nombre del archivo de entrada; Tomcat usa
tomcat. - Modo del iniciador: consola, o interfaz gráfica sin ventana de consola.
- Icono de Windows: archivo
.icoopcional. - Opciones de inicio de la JVM: una por línea. Con el EXE activado, este campo solo aparece aquí, y lo que escriba se escribe tanto en el EXE como en los scripts de arranque.
- Información de versión de Windows: versión del archivo, versión del producto, nombre de la empresa, nombre del producto, descripción del archivo y aviso de copyright.
El cifrado de bibliotecas produce un único archivo, por lo que no ofrece esta opción. Los detalles están en Crear un iniciador EXE de Windows.
6. Reglas de exclusión
La interfaz gráfica y la línea de comandos usan la misma sintaxis:
com.example.SecretService solo esta clase
com.example.service.* solo este paquete
com.example.service.** este paquete y todos sus subpaquetes
Si excluye los DTO, las entidades, los controladores, las clases de configuración, las clases puente de JNI y todo lo que necesite ampliación de bytecode en tiempo de ejecución, protegerá únicamente la lógica de negocio principal.
7. Revisión de la salida
La última página muestra:
- el archivo de entrada y el tipo de aplicación;
- la versión de Java y las plataformas de destino;
- si JavaFX está activado;
- el formato del archivo, el ajuste del JIT, la capa y el diseño de Spring;
- el alcance de la protección, las reglas de exclusión y la ruta de contexto de Tomcat.
Marque Crear nueva carpeta para dejar el resultado en un subdirectorio p4jx-xxxx de nombre único dentro del directorio de salida. No puede usarse al añadir una aplicación a un paquete de Tomcat existente, porque en ese caso hay que indicar directamente el directorio ya creado.

8. Exportar y cargar archivos de tarea
Tanto la página de opciones avanzadas como la de revisión final pueden exportar un archivo de tarea p4j-task.yml, editable a mano. El archivo recoge los ajustes ya resueltos:
- la entrada, el tipo de aplicación y los ajustes de salida;
- la versión de Java y una o varias plataformas de destino;
- el alcance de la protección y las opciones de compatibilidad y empaquetado.
Los comentarios del archivo muestran tanto la invocación p4j --task-file <archivo> como la línea de comandos equivalente. El correo y la contraseña de la cuenta nunca se escriben en el archivo de tarea; sin credenciales reales en tiempo de ejecución, el resultado es una compilación de prueba.
Con Cargar archivo de tarea, en la parte superior de la ventana, vuelve a leer un YAML, restaura la tarea y salta directamente a la revisión final. Los antiguos p4j-encrypt-run.sh y .bat todavía pueden importarse, pero la interfaz ya no exporta scripts de ejecución.