GUI 使用指南

GUI 以精靈的方式完成每一次保護任務,流程如下:

應用程式類型 → 輸入、執行時、平臺 → 簡單或進階參數 → Windows EXE 啟動器(可選) → 輸出確認 → 執行

1. 應用程式類型

GUI 選項輸入輸出對應的 CLI 命令
Java 應用一般可執行 JAR完整的應用程式目錄javaapp
Spring BootSpring Boot 應用程式完整的應用程式目錄springboot
Tomcat WARWAR內嵌 Tomcat 的目錄tomcat
類庫加密任意 JAR單一 P4JX 歸檔encode

類型選錯,可能導致主類、相依套件、Web 資源或啟動器沒有被正確處理。

應用程式類型頁面

2. 輸入、執行時與目標平臺

一次精靈流程處理一個輸入 JAR 或 WAR。接著需要選擇:

  • Java 版本:8、11、17、21 或 25,預設為 21。
  • 目標平臺:可以一次選擇多個。
  • 模式:簡單模式或進階模式。
  • 產生 Windows 應用程式 EXE:可選,前提是至少選取一個 Windows 目標平臺。

選擇多個平臺時,工具會為每個平臺產生一個獨立的目錄。

輸入、Java 版本與目標平臺頁面

3. 簡單模式

簡單模式適合絕大多數初次打包的情況。離開輸入頁時,工具會執行一次相容性掃描,並依掃描結果決定:

  • 建議排除哪些類別;
  • 是否啟用 JavaFX 與 WebView;
  • 是否啟用掃描器 ZIP 覆蓋層;
  • 是否改用 .jar 歸檔字尾;
  • Spring Boot 採用哪一種佈局;
  • 使用 Tomcat 9 還是 10.1。

掃描給出的是靜態分析的建議,而不是實際執行測試的結果。打包完成後,仍然必須在目標平臺上實際測試應用程式。

4. 進階模式

進階模式可以手動設定歸檔字尾,決定是否停用 JIT,追加掃描器 ZIP 覆蓋層,設定 JVM 啟動選項,定義排除規則,以及設定各應用程式類型專屬的選項。

完整的操作說明、每個選項的意義、預設值以及各應用程式類型之間的差異,請參閱 Protector4J 進階模式設定

一般 Java 應用程式的進階參數

5. Windows EXE 啟動器

在輸入頁勾選**產生 Windows 應用程式 EXE(x64/x86/ARM64)**之後,精靈會在參數頁之後插入一個啟動器頁面。這個選項位於簡單模式與進階模式的分歧之前,因此兩種模式都可以產生 EXE;不勾選時,精靈會直接進入輸出確認頁。

啟動器頁面可以填寫:

  • EXE 檔案名稱:留空時使用輸入檔案的名稱,Tomcat 則使用 tomcat
  • 啟動器模式:主控台模式,或不顯示主控台視窗的 GUI 模式。
  • Windows 圖示:可選的 .ico 檔案。
  • JVM 啟動選項:每行一個。啟用 EXE 後,這個輸入欄位只會出現在這一頁,填寫的選項會同時寫入 EXE 與啟動指令碼。
  • Windows 版本資訊:檔案版本、產品版本、公司名稱、產品名稱、檔案說明與版權聲明。

類庫加密只輸出單一歸檔檔案,因此沒有這個選項。完整說明請見產生 Windows EXE 啟動器

6. 排除規則

GUI 與 CLI 使用同一套寫法:

com.example.SecretService   精確比對這一個類別
com.example.service.*       只比對目前的套件
com.example.service.**      比對目前套件及其所有子套件

把 DTO、實體、控制器、設定類別、JNI 橋接類別,以及需要在執行時做位元組碼增強的類別排除掉,就可以只保護核心商業邏輯。

7. 輸出確認

最後一頁會顯示:

  • 輸入檔案與應用程式類型;
  • Java 版本與目標平臺;
  • 是否啟用 JavaFX;
  • 歸檔格式、JIT 設定、覆蓋層與 Spring 佈局;
  • 保護範圍、排除規則與 Tomcat 上下文路徑。

勾選新建資料夾,可以在輸出目錄下建立一個名稱唯一的 p4jx-xxxx 子目錄來存放結果。若是要往現有的 Tomcat 包中追加應用程式,就不能使用這一項,因為那種情況必須直接指定既有的 Tomcat 目錄。

輸出確認與參數摘要

8. 匯出與載入任務檔案

進階參數頁與最終確認頁都可以匯出 p4j-task.yml 任務檔案,該檔案可以手動編輯。任務檔案會記錄目前已解析的設定:

  • 輸入、應用程式類型與輸出設定;
  • Java 版本與一個或多個目標平臺;
  • 保護範圍、相容性與打包選項。

檔案中的註解會同時給出 p4j --task-file <檔案> 的呼叫方式,以及等價的純命令列寫法。帳號電子郵件與密碼不會寫入任務檔案;執行時若沒有補上正式帳號憑證,產生的將是試用版。

使用視窗頂端的載入任務檔案,可以重新讀入 YAML、還原任務,並直接跳到最終確認頁。舊版本匯出的 p4j-encrypt-run.sh.bat 仍然可以匯入,但 GUI 已經不再匯出執行指令碼。