Référence des paramètres CLI

Les exemples dans ce document utilisent la commande p4j fournie après l’installation. La GUI pour Windows s’installe via .exe, tandis que la GUI pour macOS s’installe via Protector4J.app à l’intérieur de .dmg ; la forme d’installation de la GUI ne modifie pas la syntaxe CLI ci-dessous. Si l’installateur n’a pas inclus la CLI dans PATH, exécutez-la depuis l’entrée en ligne de commande fournie dans le répertoire d’installation de Protector4J.

p4j --help

1. Commandes

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]

Pour la couche inférieure encode, le nom de la commande peut également être omis:

p4j input.jar output.p4jx [options]

2. Options générales

OptionsDescription
--no-jitInterdire la méthode de protection JIT et passer à l’exécution par interpréteur
--zip-overlay off|scannerDésactiver ou ajouter une vue compatible ZIP pour le scanneur, valeur par défaut: off
--compat-scanSeulement scanner puis quitter; aucune sortie de paramètres requise
--compat-applyScanner, appliquer des recommandations prudentes, puis continuer l’encodage
--no-compat-excludesEn combinaison avec --compat-apply, ne pas ajouter automatiquement les classes d’exclusion recommandées
--account-email <email>Adresse e-mail du compte de licence
--account-password <password>Mot de passe du compte de licence
--app-id <id>Identifiant de l’application spécifiée
--license-expires-in <sec>Demande du nombre de secondes valables pour l’essai, soumise aux politiques du serveur

Commandes de packaging de haut niveau prises en charge:

OptionsDescription
--archive-suffix p4jx|jarSuffisant du fichier d’archive généré, par défaut p4jx ; le format interne n’est pas modifié
--jvm-option <option>Écriture de scripts de démarrage pour macOS/Linux et Windows; chaque paramètre est utilisé une fois, mais peut être répété

3. encode

p4j encode input.jar output.p4jx [options]
OptionsDescription
--runtime-major <N>Spécifier la cible de dépliement pour la vue des ressources/Multi-Release, valeur par défaut: 21

4. javaapp

p4j javaapp input.jar output-dir [options]
OptionsDescription
--main <class>Spécifier la classe principale d’initialisation
--protect <rules>Règles pour les classes/pakets à protéger, séparées par des virgules; toutes les classes sont appliquées par défaut.
--exclude <rules>Exclure de la protection.
--javafx [<dir>]Activer JavaFX; chemin du répertoire des ressources locales optionnel.
--javafx-webviewForcer l’inclusion de WebView.
--no-javafx-webviewForcer l’exclusion de WebView.
--no-javafxDésactiver explicitement JavaFX.

5. springboot

p4j springboot input.jar output-dir [options]
Options.Description.
--main <class>Spécifier la classe principale de Spring Boot; lecture par défaut du Manifest
--protect <rules>Assurer la protection des classes correspondantes dans BOOT-INF/classes
--exclude <rules>Exclure des classes ou des packages
--protect-lib <globs>Assurer la protection des JAR correspondants de BOOT-INF/lib, séparés par des virgules
--layout p4jx-fat|fat|separateAfficher le layout, par défaut p4jx-fat
--javafx [<dir>]Activer JavaFX; chemin du répertoire des ressources locales optionnel
--javafx-webviewForcer l’inclusion de WebView
--no-javafx-webviewForcer l’exclusion de WebView
--no-javafxDésactiver explicitement JavaFX

6. tomcat

p4j tomcat input.war output-dir [options]
OptionsDescription
--exclude <rules>Exclure des classes ou des packages de WEB-INF/classes
--context </path>Chemin contextuel, par défaut /app
--append-appAjouter l’application à un package P4JX Tomcat existant
--tomcat-version auto|9|10Détection automatique ou version forcée, par défaut en CLI auto
--precompile-jspForcer la précompilation des JSP
--no-precompile-jspInterdiction de la pré-compilation des JSP

7. Syntaxe des règles

com.example.SecretService   Classe unique
com.example.service         Correspondance de package direct
com.example.service.*       Correspondance de package direct
com.example.service.**      Package et tous ses sous-packages
com/example/Secret.class    Chemin de l’entrée class

Plusieurs règles sont séparées par des virgules; des guillemets doivent être utilisés lorsque * est présent dans le shell:

--protect 'com.example.**' --exclude 'com.example.dto.**,com.example.config.**'

8. Variables d’environnement

VariablesDescription
P4JX_RUNTIME_JAVA_VERSIONLignes d’entraînement Java utilisées pour le packaging de haut niveau: 8/11/17/21/25
P4JX_RUNTIME_PLATFORMID de la plateforme cible
P4JX_RUNTIME_CACHE_DIRDossier de cache pour le téléchargement du VLX JRE
APP_JAVA_OPTSAjout temporaire de paramètres JVM lors de l’exécution de l’application générée; compatible avec macOS/Linux et Windows

Équivalents des propriétés système Java pour les scénarios avancés où il est possible de lancer directement le JAR de l’encodeur:

-Dp4jx.runtime.java.version=<N>
-Dp4jx.runtime.platform=<platform>
-Dp4jx.runtime.cache.dir=<dir>

9. Exemples d’automatisation

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

Les options explicites de protection/exclusion ainsi que les paramètres de disposition prennent le pas sur les suggestions automatiques. Il est recommandé de consigner les paramètres finaux, l’SHA-256 des entrées et la version de l’outil afin d’en assurer la provenance lors de la publication.

Des exemples de GUI, de CLI, d’édition directe de run.sh/run.bat, de scripts de démarrage Tomcat ainsi que de Windows PowerShell se trouvent dans Configuration des paramètres de démarrage de la JVM.