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'interfaceEntréeSortieCommande équivalente
Application JavaJAR exécutable ordinaireRépertoire d'application completjavaapp
Spring BootApplication Spring BootRépertoire d'application completspringboot
Tomcat WARWARRépertoire avec Tomcat intégrétomcat
Chiffrement de la bibliothèqueN'importe quel JARUne seule archive P4JXencode

Un mauvais choix de type peut empêcher le traitement correct de la classe principale, des dépendances, des ressources web ou du lanceur.

Page du type d'application

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.

Page de l'entrée, de la version de Java et des plates-formes cibles

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.

Options avancées d'une application Java ordinaire

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 .ico facultatif.
  • 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.

Vérification de la sortie et récapitulatif des options

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.