Guide de l'interface graphique
L'interface graphique déroule chaque tâche de protection sous forme d'assistant. Le parcours est le suivant :
Type d'application → Entrée, runtime et plate-forme → Options simples ou avancées → Lanceur EXE Windows (facultatif) → Vérification de la sortie → Exécution
1. Type d'application
| Option de l'interface | Entrée | Sortie | Commande équivalente |
|---|---|---|---|
| Application Java | JAR exécutable ordinaire | Répertoire d'application complet | javaapp |
| Spring Boot | Application Spring Boot | Répertoire d'application complet | springboot |
| Tomcat WAR | WAR | Répertoire avec Tomcat intégré | tomcat |
| Chiffrement de la bibliothèque | N'importe quel JAR | Une seule archive P4JX | encode |
Un mauvais choix de type peut empêcher le traitement correct de la classe principale, des dépendances, des ressources web ou du lanceur.

2. Entrée, runtime et plates-formes cibles
Chaque passage dans l'assistant traite un JAR ou un WAR. Vous choisissez ensuite :
- Version de Java : 8, 11, 17, 21 ou 25. La valeur par défaut est 21.
- Plates-formes cibles : plusieurs sélections possibles.
- Mode : simple ou avancé.
- Générer un EXE d'application Windows : facultatif, et nécessite au moins une plate-forme cible Windows.
Lorsque plusieurs plates-formes sont sélectionnées, l'outil produit un répertoire distinct pour chacune.

3. Mode simple
Le mode simple convient à la quasi-totalité des premiers empaquetages. En quittant la page d'entrée, l'outil lance une analyse de compatibilité et en tire les décisions suivantes :
- les classes qu'il est conseillé d'exclure ;
- l'activation ou non de JavaFX et de WebView ;
- l'activation ou non de la superposition ZIP pour les scanners ;
- le passage ou non au suffixe d'archive
.jar; - la disposition retenue pour Spring Boot ;
- l'emploi de Tomcat 9 ou 10.1.
L'analyse fournit des recommandations issues d'une étude statique, et non les résultats d'une exécution réelle. Testez toujours l'application empaquetée sur la plate-forme cible.
4. Mode avancé
Le mode avancé permet de fixer soi-même le suffixe d'archive, de décider de la désactivation du JIT, d'ajouter la superposition pour les scanners, de définir des options JVM et des règles d'exclusion, et de régler les options propres à chaque type d'application.
Les instructions complètes, le sens de chaque option, les valeurs par défaut et les différences entre types figurent dans Réglages du mode avancé de Protector4J.

5. Lanceur EXE Windows
Si vous cochez Générer un EXE d'application Windows (x64/x86/ARM64) sur la page d'entrée, l'assistant insère une page de lanceur après celle des options. Cette case se trouve avant l'embranchement entre mode simple et mode avancé : les deux modes peuvent donc produire un EXE. Si vous ne la cochez pas, l'assistant passe directement à la vérification de la sortie.
La page du lanceur permet de renseigner :
- Nom du fichier EXE : laissé vide, le nom du fichier d'entrée est repris ; Tomcat utilise
tomcat. - Mode du lanceur : console, ou interface graphique sans fenêtre de console.
- Icône Windows : fichier
.icofacultatif. - Options de démarrage JVM : une par ligne. Lorsque l'EXE est activé, ce champ n'apparaît qu'ici, et ce que vous saisissez est écrit à la fois dans l'EXE et dans les scripts de démarrage.
- Informations de version Windows : version du fichier, version du produit, nom de la société, nom du produit, description du fichier et mention de copyright.
Le chiffrement de la bibliothèque ne produit qu'une archive : cette option n'y figure donc pas. Les détails se trouvent dans Créer un lanceur EXE Windows.
6. Règles d'exclusion
L'interface graphique et la ligne de commande partagent la même syntaxe :
com.example.SecretService cette classe uniquement
com.example.service.* ce paquet uniquement
com.example.service.** ce paquet et tous ses sous-paquets
En excluant les DTO, les entités, les contrôleurs, les classes de configuration, les classes passerelles JNI et tout ce qui exige une amélioration du bytecode à l'exécution, vous ne protégez que le cœur de la logique métier.
7. Vérification de la sortie
La dernière page affiche :
- le fichier d'entrée et le type d'application ;
- la version de Java et les plates-formes cibles ;
- l'activation ou non de JavaFX ;
- le format d'archive, le réglage du JIT, la superposition et la disposition Spring ;
- l'étendue de la protection, les règles d'exclusion et le chemin de contexte Tomcat.
Cochez Créer un nouveau dossier pour placer le résultat dans un sous-répertoire p4jx-xxxx au nom unique, à l'intérieur du répertoire de sortie. Cette option est indisponible lorsqu'on ajoute une application à un paquet Tomcat existant, car il faut alors désigner directement le répertoire déjà en place.

8. Exporter et charger des fichiers de tâche
La page des options avancées comme la page finale peuvent exporter un fichier de tâche p4j-task.yml, modifiable à la main. Ce fichier consigne les réglages tels qu'ils ont été résolus :
- l'entrée, le type d'application et les réglages de sortie ;
- la version de Java et une ou plusieurs plates-formes cibles ;
- l'étendue de la protection, la compatibilité et les options d'empaquetage.
Les commentaires du fichier indiquent aussi bien l'appel p4j --task-file <fichier> que la ligne de commande équivalente. L'adresse e-mail et le mot de passe du compte ne sont jamais écrits dans le fichier de tâche ; sans identifiants réels à l'exécution, le résultat est une version d'essai.
Charger un fichier de tâche, en haut de la fenêtre, relit un YAML, rétablit la tâche et vous conduit directement à la page finale. Les anciens p4j-encrypt-run.sh et .bat restent importables, mais l'interface n'exporte plus de scripts d'exécution.