Guide d’utilisation de la GUI
La GUI effectue les tâches de protection de manière guidée, selon le processus suivant:
Type d’application → Temps d’exécution/Plateforme → Paramètres simples ou avancés → Confirmation de sortie → Exécuter
1. Type d’application
| Options de la GUI | Entrée | Sortie | Équivalent CLI |
|---|---|---|---|
| Java Application | JAR exécutable ordinaire | Dossier complet de l’application | javaapp |
| Spring Boot | Application Spring Boot | Dossier complet de l’application | springboot |
| Tomcat WAR | WAR | Dossier Tomcat intégré | tomcat |
| Library Encryption | N’importe quel JAR | Archivage P4JX unique | encode |
Un choix incorrect de type peut empêcher la classe principale, les dépendances, les ressources Web ou le lanceur d’être traités correctement.

2. Entrée, temps de exécution et plateforme cible
Une tâche guidée permet de sélectionner un JAR ou un WAR d’entrée. Ensuite, il faut choisir:
- Bundled Java version: 8, 11, 17, 21 ou 25, avec une valeur par défaut de 21.
- Target platforms: Il est possible de sélectionner plusieurs plateformes en même temps.
- Mode: Mode simple ou mode avancé.
Lorsque plusieurs plateformes sont sélectionnées, l’outil génère un répertoire distinct pour chaque plateforme.

3. Mode simple
Le mode simple convient à la grande majorité des tâches de packaging initiales. Lorsque l’on quitte la page d’entrée, l’outil effectue automatiquement une analyse de compatibilité et choisit en fonction des résultats:
- Classes à exclure selon les recommandations;
- Activation de JavaFX et WebView;
- Activation de l’overlay ZIP du scanner;
- Changement vers l’extension
.jar; - Layout recommandé pour Spring Boot;
- Tomcat 9 ou 10.1.
Les résultats de scan sont des recommandations issues d’une analyse statique, et non des tests de fonctionnement complets. Des tests d’application doivent toujours être effectués sur la plateforme cible après le packaging.
4. Mode avancé
Le mode avancé permet de configurer manuellement l’extension des archives, de déterminer si JIT doit être désactivé, d’ajouter une couche scanner overlay, de définir des paramètres JVM, des règles d’exclusion ainsi que des options spécifiques pour chaque type d’application.
Pour des informations complètes sur les instructions d’utilisation, la signification des paramètres, les valeurs par défaut et les différences entre les types d’application, veuillez vous référer à Paramètres du mode avancé de Protector4J.

5. Règles d’exclusion
Les mêmes règles s’appliquent tant pour la GUI que pour la CLI:
com.example.SecretService Nom de classe précis
com.example.service.* Seulement le package actuel
com.example.service.** Le package actuel et tous ses sous-pakets
Il est recommandé d’exclure les DTO, entités, controllers, classes de configuration, classes de pontage JNI ainsi que les classes nécessitant des améliorations au niveau du bytecode à l’exécution, afin de ne protéger que l’implémentation métier principale.
6. Confirmation de la sortie
La dernière page affiche:
- Le type d’entrée et d’application;
- La version Java et la plateforme cible;
- État de JavaFX;
- Format d’archivage, JIT, overlay et mise en page Spring;
- Périmètre de protection, règles d’exclusion et contexte Tomcat.
Il est possible de sélectionner Create new folder pour créer un sous-dossier unique p4jx-xxxx dans le répertoire de sortie. Cette option ne peut pas être activée lors de l’ajout d’applications Tomcat, car il faut spécifier directement le répertoire des packages Tomcat existants.

7. Exportation et chargement des fichiers de tâche
Les pages de paramètres avancés et la page de confirmation finale peuvent être exportées:
p4j-encrypt-run.shp4j-encrypt-run.bat
Le script appelle la commande p4j déjà installée et enregistre les options actuellement analysées. L’adresse e-mail et le mot de passe du compte ne sont pas écrits dans le fichier.
En utilisant Load Task File en haut de la fenêtre, il est possible de recharger le script et de restaurer la tâche, avant d’accéder directement à la page de confirmation finale. Lorsque les anciens scripts ne contiennent pas de métadonnées de tâche, l’interface graphique tente d’analyser les commandes p4j qu’ils contiennent.