Proteção de bibliotecas Java
A opção Library Encryption corresponde ao comando de camada inferior encode, gerando apenas um arquivo compactado protegido, sem copiar o ambiente de execução nem criar scripts de inicialização de aplicativos.
1. Operações via GUI
-
Selecione Library Encryption na página de tipo de aplicativo. Caso seja necessário um pacote pronto para ser iniciado diretamente, escolha Java Application, Spring Boot ou Tomcat WAR.

-
Escolha o JAR de entrada, a versão do Java compatível com o ambiente de execução real e a plataforma-alvo, e depois selecione o modo simples ou o modo avançado. A saída da biblioteca não inclui
vlxjre, mas essas escolhas ainda são usadas para determinar a identidade do ambiente de execução do arquivo compactado; não misture saídas de plataformas diferentes para reduzir a quantidade de produtos gerados.
-
O modo simples escaneia o JAR de entrada e aplica automaticamente os scanners ZIP overlay suportados pela Library Encryption, bem como sugestões de sufixos para arquivos compactados. Ele ainda criptografa todos os itens
.classpresentes no JAR de entrada, mantendo os outros recursos descriptografados. -
O modo avançado permite configurações conforme necessário:
- Disable JIT for protected methods: Faz com que os métodos protegidos sejam executados apenas no interpretador;
- Append scanner ZIP overlay: Fornece recursos públicos e stubs de metadados para ferramentas que analisam diretamente o diretório central do ZIP;
- Compatibility scan…: Escaneia riscos de compatibilidade, como acesso ao ZIP, suposições sobre sufixos, classes JNI/nativas e leitura de bytecode em tempo de execução.
-
Na página de saída, selecione o nome completo do arquivo de saída, geralmente usando
.p4jx;.jaré usado apenas quando o programa integrado exige explicitamente o sufixo.jar. As sugestões de seleção ou escaneamento em página avançada, via Archive suffix, sincronizam os sufixos.p4jx/.jardos arquivos selecionados. Revise a versão do Java, a plataforma-alvo, o JIT, o scanner overlay, e então clique em Run protection.Tarefas para uma única plataforma utilizam o caminho de arquivo exato selecionado. Ao escolher várias plataformas-alvo, a GUI cria subpastas por plataforma dentro do diretório onde o arquivo se encontra, gerando os arquivos compactados correspondentes em cada uma delas.
2. Cenários de aplicação
- Protege JARs próprios que fazem parte de outros aplicativos P4JX controlados;
- Carrega o arquivo P4JX usando um iniciador existente;
- Integração avançada que requer gerenciamento manual do diretório de entrega completo.
Se o objetivo for um aplicativo comum executável diretamente, Spring Boot ou Tomcat, use os comandos de empacotamento correspondentes.
3. Comandos básicos
p4j encode library.jar library.p4jx
Também é possível usar abreviações:
p4j library.jar library.p4jx
encode escreve o nome do arquivo de saída completo fornecido pelo usuário; portanto, ambos os seguintes estão no formato 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
O overlay contém apenas recursos públicos, diretórios e marcadores de metadados, visando compatibilidade com ferramentas que analisam diretamente o diretório central do ZIP. Ele não revela os métodos reais de proteção, nem transforma o P4JX em um JAR comum.
5. Requisitos em tempo de execução
A camada inferior encode não gera vlxjre; o usuário deve fornecer um ambiente de execução VLX que corresponda à identidade utilizada durante a codificação. Não faça o seguinte:
- Usar o OpenJDK/Oracle JDK comum para carregar;
- Copiar
lib/modulesou bibliotecas nativas de outro pacote de versão; - Misturar ambientes de execução de plataformas diferentes, linhas de treinamento do JDK ou tarefas de codificação com o arquivamento.
Para projetos de entrega comuns, prefira usar comandos de empacotamento de camada superior para manter automaticamente essas relações.
6. Licença
É necessário obter com sucesso uma licença emitida pelo servidor e incorporá-la ao gerar o arquivo de arquivamento. Contas completas e o modo de teste seguem o mesmo processo de verificação de arquivamento. Ambientes automatizados não devem codificar senhas diretamente nos scripts de tarefa exportados.