GUI 使用指南
GUI 以嚮導方式完成保護任務,流程為:
應用型別 → 輸入/執行時/平臺 → 簡單或高階引數 → 輸出確認 → 執行
1. 應用型別
| GUI 選項 | 輸入 | 輸出 | 對應 CLI |
|---|---|---|---|
| Java Application | 普通可執行 JAR | 完整應用目錄 | javaapp |
| Spring Boot | Spring Boot 應用 | 完整應用目錄 | springboot |
| Tomcat WAR | WAR | 內嵌 Tomcat 目錄 | tomcat |
| Library Encryption | 任意 JAR | 單個 P4JX 歸檔 | encode |
選擇錯誤的型別可能導致主類、依賴、Web 資源或啟動器無法正確處理。

2. 輸入、執行時與目標平臺
一次嚮導任務選擇一個輸入 JAR 或 WAR。隨後選擇:
- Bundled Java version:8、11、17、21 或 25,預設 21。
- Target platforms:可以一次選擇多個平臺。
- Mode:簡單模式或高階模式。
當選擇多個平臺時,工具會為每個平臺生成獨立目錄。

3. 簡單模式
簡單模式適合絕大多數首次打包任務。離開輸入頁時,工具自動執行相容性掃描,並根據結果選擇:
- 建議排除的類;
- 是否啟用 JavaFX 和 WebView;
- 是否啟用掃描器 ZIP overlay;
- 是否改用
.jar字尾; - Spring Boot 的推薦佈局;
- Tomcat 9 或 10.1。
掃描結果是靜態分析建議,不是完整的執行測試。打包後仍應在目標平臺進行應用測試。
4. 高階模式
高階模式可以手動配置歸檔字尾、設定是否停用JIT、新增scanner overlay層、設定JVM 引數、設定排除規則以及各應用型別的專用選項。
完整的操作說明、引數含義、預設值和應用型別差異統一參見 Protector4J 高階模式設定。

5. 排除規則
GUI 和 CLI 使用相同規則:
com.example.SecretService 精確類名
com.example.service.* 僅當前包
com.example.service.** 當前包及所有子包
建議把 DTO、實體、Controller、配置類、JNI 橋接類以及需要執行時位元組碼增強的類排除,只保護核心業務實現。
6. 輸出確認
最後一頁顯示:
- 輸入和應用型別;
- Java 版本和目標平臺;
- JavaFX 狀態;
- 歸檔格式、JIT、overlay 和 Spring 佈局;
- 保護範圍、排除規則和 Tomcat context。
可選擇 Create new folder,在輸出目錄下建立唯一的 p4jx-xxxx 子目錄。Tomcat 追加應用時不能啟用此項,因為必須直接指定現有 Tomcat 包目錄。

7. 匯出與載入任務檔案
高階引數頁和最終確認頁可匯出:
p4j-encrypt-run.shp4j-encrypt-run.bat
指令碼呼叫已安裝的 p4j 命令,並儲存當前已解析的選項。賬號郵箱和密碼不會寫入檔案。
使用視窗頂部 Load Task File 可重新載入指令碼並恢復任務,然後直接進入最終確認頁。舊版指令碼沒有任務後設資料時,GUI 會嘗試解析其中的 p4j 命令。