Referência de parâmetros CLI
Os exemplos neste documento utilizam o comando p4j fornecido após a instalação. A interface gráfica do Windows é instalada por meio de .exe, enquanto a do macOS é instalada por meio de Protector4J.app dentro de .dmg; a forma de instalação da interface gráfica não altera a sintaxe CLI abaixo. Se o instalador não incluiru a CLI em PATH, execute-a a partir do ponto de entrada da linha de comando fornecido no diretório de instalação do 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]
No nível inferior, encode também permite omitir o nome do comando:
p4j input.jar output.p4jx [options]
2. Opções gerais
| Opções | Descrição |
|---|---|
--no-jit | Proíba o método de proteção JIT e altere para execução por interpretador. |
--zip-overlay off|scanner | Desative ou adicione a visualização compatível com ZIP do scanner; o valor padrão é off. |
--compat-scan | Apenas faça a varredura e saia; não são necessários parâmetros de saída. |
--compat-apply | Realize a varredura, aplique sugestões conservadoras e, em seguida, continue com a codificação. |
--no-compat-excludes | Em conjunto com --compat-apply, não adicione automaticamente as classes de exclusão sugeridas. |
--account-email <email> | E-mail da conta de licença. |
--account-password <password> | Senha da conta de licença. |
--app-id <id> | Identificador da aplicação especificada |
--license-expires-in <sec> | Solicitação do número de segundos válidos para teste, sujeito às políticas do servidor |
Comandos de empacotamento de nível superior suportados:
| Opções | Descrição |
|---|---|
--archive-suffix p4jx|jar | Sufixo do arquivo arquivado gerado, por padrão p4jx; o formato interno não é alterado |
--jvm-option <option> | Grava scripts de inicialização para macOS/Linux e Windows; cada parâmetro é usado uma vez, podendo ser repetido |
3. encode
p4j encode input.jar output.p4jx [options]
| Opções | Descrição |
|---|---|
--runtime-major <N> | Especificar o destino de desdobramento da visualização de recursos/Multi-Release, valor padrão 21 |
4. javaapp
p4j javaapp input.jar output-dir [options]
| Opções | Descrição |
|---|---|
--main <class> | Especificar a classe principal do iniciador |
--protect <rules> | Regras para classes/pacotes a serem submetidos a proteção, separadas por vírgulas; todas as classes são aplicadas por padrão. |
--exclude <rules> | Excluir do escopo de proteção. |
--javafx [<dir>] | Habilitar o JavaFX; diretório opcional para materiais locais. |
--javafx-webview | Forçar a inclusão do WebView. |
--no-javafx-webview | Forçar a exclusão do WebView. |
--no-javafx | Desabilitar explicitamente o JavaFX. |
5. springboot
p4j springboot input.jar output-dir [options]
| Opções. | Descrição. |
|---|---|
--main <class> | Especifica a classe principal do Spring Boot; lê o Manifest por padrão |
--protect <rules> | Fornece proteção para as classes correspondentes em BOOT-INF/classes |
--exclude <rules> | Exclui classes ou pacotes |
--protect-lib <globs> | Fornece proteção para os JAR correspondentes de BOOT-INF/lib, separados por vírgulas |
--layout p4jx-fat|fat|separate | Define o layout de saída, sendo p4jx-fat o padrão |
--javafx [<dir>] | Habilita o JavaFX; permite especificar um diretório opcional para materiais locais |
--javafx-webview | Força a inclusão do WebView |
--no-javafx-webview | Força a exclusão do WebView |
--no-javafx | Desativar explicitamente o JavaFX |
6. tomcat
p4j tomcat input.war output-dir [options]
| Opções | Descrição |
|---|---|
--exclude <rules> | Excluir classes ou pacotes de WEB-INF/classes |
--context </path> | Caminho do contexto, valor padrão /app |
--append-app | Adicionar o aplicativo a um pacote P4JX Tomcat existente |
--tomcat-version auto|9|10 | Detecção automática ou versão forçada, valor padrão da CLI auto |
--precompile-jsp | Forçar a pré-compilação de JSP |
--no-precompile-jsp | Proibição da compilação prévia de JSP |
7. Sintaxe das regras
com.example.SecretService Classe única
com.example.service Correspondência direta de pacotes
com.example.service.* Correspondência direta de pacotes
com.example.service.** Pacote e todos os subpacotes
com/example/Secret.class Caminho do item class
Várias regras devem ser separadas por vírgulas; quando houver * no shell, é necessário usar aspas:
--protect 'com.example.**' --exclude 'com.example.dto.**,com.example.config.**'
8. Variáveis de ambiente
| Variáveis | Descrição |
|---|---|
P4JX_RUNTIME_JAVA_VERSION | Linhas de treinamento Java utilizadas para empacotamento de alto nível: 8/11/17/21/25 |
P4JX_RUNTIME_PLATFORM | ID da plataforma de destino |
P4JX_RUNTIME_CACHE_DIR | Diretório de cache de download do VLX JRE |
APP_JAVA_OPTS | Parâmetros JVM adicionados temporariamente ao executar o aplicativo gerado; compatível com macOS/Linux e Windows |
Equivalentes de propriedades do sistema Java para cenários avançados em que é necessário iniciar diretamente o JAR do codificador:
-Dp4jx.runtime.java.version=<N>
-Dp4jx.runtime.platform=<platform>
-Dp4jx.runtime.cache.dir=<dir>
9. Exemplos de automação
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
Opções explícitas de proteção/exclusão e de layout substituem as sugestões automáticas. Recomenda-se registrar os parâmetros finais, o SHA-256 da entrada e a versão da ferramenta como parte da proveniência da versão lançada.
Exemplos de GUI, CLI, edição direta de run.sh/run.bat, scripts de inicialização do Tomcat e Windows PowerShell estão disponíveis em Configuração de parâmetros de inicialização do JVM.