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çõesDescrição
--no-jitProíba o método de proteção JIT e altere para execução por interpretador.
--zip-overlay off|scannerDesative ou adicione a visualização compatível com ZIP do scanner; o valor padrão é off.
--compat-scanApenas faça a varredura e saia; não são necessários parâmetros de saída.
--compat-applyRealize a varredura, aplique sugestões conservadoras e, em seguida, continue com a codificação.
--no-compat-excludesEm 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çõesDescrição
--archive-suffix p4jx|jarSufixo 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çõesDescriçã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çõesDescriçã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-webviewForçar a inclusão do WebView.
--no-javafx-webviewForçar a exclusão do WebView.
--no-javafxDesabilitar 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|separateDefine 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-webviewForça a inclusão do WebView
--no-javafx-webviewForça a exclusão do WebView
--no-javafxDesativar explicitamente o JavaFX

6. tomcat

p4j tomcat input.war output-dir [options]
OpçõesDescrição
--exclude <rules>Excluir classes ou pacotes de WEB-INF/classes
--context </path>Caminho do contexto, valor padrão /app
--append-appAdicionar o aplicativo a um pacote P4JX Tomcat existente
--tomcat-version auto|9|10Detecção automática ou versão forçada, valor padrão da CLI auto
--precompile-jspForçar a pré-compilação de JSP
--no-precompile-jspProibiçã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áveisDescrição
P4JX_RUNTIME_JAVA_VERSIONLinhas de treinamento Java utilizadas para empacotamento de alto nível: 8/11/17/21/25
P4JX_RUNTIME_PLATFORMID da plataforma de destino
P4JX_RUNTIME_CACHE_DIRDiretório de cache de download do VLX JRE
APP_JAVA_OPTSParâ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.