Guia de uso da GUI
A GUI realiza tarefas de proteção de forma guiada, seguindo este fluxo:
Tipo de aplicação → Tempo de entrada/execução/plataforma → Parâmetros simples ou avançados → Confirmação de saída → Executar
1. Tipo de aplicativo
| Opções da GUI | Entrada | Saída | CLI correspondente |
|---|---|---|---|
| Java Application | JAR executável comum | Diretório completo do aplicativo | javaapp |
| Spring Boot | Aplicativo Spring Boot | Diretório completo do aplicativo | springboot |
| Tomcat WAR | WAR | Diretório do Tomcat embutido | tomcat |
| Library Encryption | Qualquer JAR | Arquivo P4JX único | encode |
Escolher o tipo incorreto pode impedir que a classe principal, as dependências, os recursos Web ou o iniciador sejam processados corretamente.

2. Entrada, tempo de execução e plataforma de destino
Uma tarefa de guia permite selecionar um JAR ou WAR de entrada. Em seguida, escolha:
- Bundled Java version: 8, 11, 17, 21 ou 25, sendo 21 o valor padrão.
- Target platforms: É possível selecionar várias plataformas de uma só vez.
- Mode: Modo simples ou modo avançado.
Quando várias plataformas são selecionadas, a ferramenta gera um diretório independente para cada plataforma.

3. Modo simples
O modo simples é adequado para a grande maioria das tarefas de empacotamento iniciais. Ao sair da página de entrada, a ferramenta executa automaticamente uma varredura de compatibilidade e, com base nos resultados, escolhe:
- Clases que devem ser excluídas;
- Ativar ou não o JavaFX e o WebView;
- Ativar ou não a sobreposição ZIP do scanner;
- Alterar para o sufixo
.jar; - Layout recomendado para o Spring Boot;
- Tomcat 9 ou 10.1.
Os resultados da varredura são recomendações de análise estática, e não testes de execução completos. Testes da aplicação ainda devem ser realizados na plataforma de destino após a compilação.
4. Modo avançado
No modo avançado, é possível configurar manualmente o sufixo do arquivo compactado, definir se o JIT será desativado, adicionar uma camada de sobreposição do scanner, definir parâmetros da JVM, estabelecer regras de exclusão e opções específicas para cada tipo de aplicação.
As instruções completas de operação, o significado dos parâmetros, os valores padrão e as diferenças entre os tipos de aplicação podem ser encontrados em Configurações do modo avançado do Protector4J.

5. Regras de exclusão
A GUI e a CLI seguem as mesmas regras:
com.example.SecretService Nome exato da classe
com.example.service.* Apenas o pacote atual
com.example.service.** Pacote atual e todos os pacotes filhos
Recomenda-se excluir DTOs, entidades, Controllers, classes de configuração, classes de ponte JNI e classes que necessitam de aprimoramentos em bytecode em tempo de execução, protegendo apenas a implementação principal do negócio.
6. Confirmação de saída
A última página exibe:
- Tipo de entrada e aplicação;
- Versão do Java e plataforma de destino;
- Estado do JavaFX;
- Formato de arquivamento, JIT, overlay e layout Spring;
- Escopo de proteção, regras de exclusão e contexto do Tomcat.
É possível selecionar Create new folder para criar um subdiretório único p4jx-xxxx no diretório de saída. Este recurso não pode ser ativado ao adicionar aplicações ao Tomcat, pois é necessário especificar diretamente o diretório do pacote do Tomcat existente.

7. Exportação e carregamento de arquivos de tarefas
É possível exportar a página de parâmetros avançados e a página de confirmação final:
p4j-encrypt-run.shp4j-encrypt-run.bat
O script chama o comando p4j instalado e salva as opções atualmente analisadas. O e-mail da conta e a senha não são gravados no arquivo.
Usando Load Task File na parte superior da janela, é possível recarregar o script e restaurar a tarefa, indo diretamente para a página de confirmação final. Quando um script antigo não possui metadados de tarefa, a GUI tentará analisar o comando p4j nele contido.