GUI-Benutzerhandbuch
Die GUI führt die Schutzaufgaben schrittweise per Assistent durch, wobei der Ablauf wie folgt ist:
Anwendungsart → Eingabe/Ausführung/Plattform → Einfache oder fortgeschrittene Parameter → Ausgabe bestätigen → Ausführen
1. Anwendungstyp
| GUI-Einstellungen | Eingabe | Ausgabe | Entsprechende CLI |
|---|---|---|---|
| Java Application | Normales ausführbares JAR | Vollständiger Anwendungsverzeichnis | javaapp |
| Spring Boot | Spring Boot-Anwendung | Vollständiger Anwendungsverzeichnis | springboot |
| Tomcat WAR | WAR | Embedded Tomcat-Verzeichnis | tomcat |
| Library Encryption | Jeglicher JAR-Datei | Einzige P4JX-Archivdatei | encode |
Die Auswahl des falschen Typs kann dazu führen, dass die Hauptklasse, Abhängigkeiten, Web-Ressourcen oder der Starter nicht ordnungsgemäß verarbeitet werden.

2. Eingabe, Laufzeit und Zielplattform
Eine einmalige Assistentenaufgabe erlaubt es, eine Eingabedatei im Format JAR oder WAR auszuwählen. Anschließend wird gefragt:
- Bundled Java version: 8, 11, 17, 21 oder 25, Standardwert ist 21.
- Target platforms: Es ist möglich, mehrere Plattformen auf einmal auszuwählen.
- Mode: Einfachmodus oder Fortgeschrittenenmodus.
Wenn mehrere Plattformen ausgewählt werden, erstellt das Tool für jede Plattform einen eigenen Ordner.

3. Einfachmodus
Der Einfachmodus eignet sich für die überwiegende Mehrheit der ersten Paketierungsaufgaben. Beim Verlassen der Eingabeseite führt das Tool automatisch eine Kompatibilitätsprüfung durch und wählt auf Basis der Ergebnisse aus:
- Klassen, die ausgeschlossen werden sollten;
- Ob JavaFX und WebView aktiviert werden sollen;
- Ob der Scanner ZIP Overlay aktiviert werden soll;
- Ob auf das Suffix
.jarumgestellt werden soll; - Die empfohlene Layout-Struktur für Spring Boot;
- Tomcat 9 oder 10.1.
Die Scan-Ergebnisse sind Empfehlungen aus der statischen Analyse und stellen keine vollständigen Laufzeittests dar. Nach dem Paketieren sollten dennoch Anwendungstests auf der Zielplattform durchgeführt werden.
4. Erweitertes Modus
Im erweiterten Modus können das Archiv-Suffix manuell konfiguriert, festgelegt werden, ob JIT deaktiviert wird, eine scanner overlay-Schicht hinzugefügt, JVM-Parameter festgelegt, Ausschlussregeln gesetzt sowie spezielle Optionen für verschiedene Anwendungsarten eingestellt werden.
Eine umfassende Anleitung zur Bedienung, Erklärungen zu den Parametern, Standardwerte sowie Unterschiede bei den Anwendungsarten finden Sie in Einstellungen für den Fortgeschrittenen-Modus von Protector4J.

5. Ausnahmeregelungen
Für GUI und CLI gelten dieselben Regeln:
com.example.SecretService Genauer Klassennamen
com.example.service.* Nur aktuelles Paket
com.example.service.** Aktuelles Paket sowie alle Unterpakete
Es wird empfohlen, DTOs, Entitäten, Controller, Konfigurationsklassen, JNI-Brückenklassen sowie Klassen, die eine Laufzeit-Bytecode-Verstärkung benötigen, auszuschließen, um nur die Kernbusiness-Logik zu schützen.
6. Ausgabebestätigung
Auf der letzten Seite werden angezeigt:
- Eingabe und Anwendungsart;
- Java-Version und Zielplattform;
- JavaFX-Status;
- Archivierungsformat, JIT, Overlay und Spring-Layout;
- Schutzumfang, Ausschlussregeln und Tomcat-Context.
Es kann Create new folder ausgewählt werden, um im Ausgabeverzeichnis ein einzigartiges Unterverzeichnis p4jx-xxxx zu erstellen. Diese Option kann nicht aktiviert werden, wenn Anwendungen zu Tomcat hinzugefügt werden, da das vorhandene Tomcat-Paketverzeichnis direkt angegeben werden muss.

7. Export und Laden von Aufgabendateien
Die Seite mit fortgeschrittenen Parametern sowie die Endbestätigungsseite können exportiert werden:
p4j-encrypt-run.shp4j-encrypt-run.bat
Skripte rufen die installierte Kommandozeile p4j auf und speichern die derzeit analysierten Optionen. E-Mail-Adresse und Passwort des Kontos werden nicht in die Datei geschrieben.
Mit Load Task File oben im Fenster können Skripte neu geladen und Aufgaben wiederhergestellt werden, anschließend wird direkt die Endbestätigungsseite angezeigt. Wenn alte Skripte keine Aufgabemetadaten enthalten, versucht die GUI, die darin enthaltenen Befehle p4j zu analysieren.