保護 Java 類庫

類庫加密對應底層的 encode 命令。它只產生受保護歸檔,不複製執行時,也不產生啟動指令碼。

1. GUI 操作

  1. 在應用程式類型頁面選擇類庫加密。如果你需要的是一個能直接啟動的交付包,應改選 Java 應用Spring BootTomcat WAR

    選擇類庫加密

  2. 選擇輸入 JAR、與實際載入環境一致的 Java 版本,以及目標平臺,然後選擇簡單模式或進階模式。類庫輸出不帶 vlxjre,但這些選擇仍然決定了歸檔所繫結的執行時身分,因此不要為了減少產出數量而把不同平臺的輸出混用。

    選擇類庫 JAR、Java 版本、目標平臺與模式

  3. 簡單模式會掃描輸入 JAR,並套用類庫加密所支援的掃描器 ZIP 覆蓋層與歸檔字尾建議。它仍然會加密輸入 JAR 中的所有 .class 項目,其他資源維持原樣。

  4. 進階模式可以設定:

    • 對受保護方法禁用 JIT:讓受保護方法只在解譯器中執行;
    • 追加掃描器 ZIP 覆蓋層:向直接解析 ZIP 中央目錄的工具提供公開資源與中繼資料樁;
    • 相容性掃描…:檢查 ZIP 存取、字尾假設、JNI 與原生類別使用、執行時讀取位元組碼等風險。
  5. 在輸出頁填寫完整的輸出檔案名稱,通常使用 .p4jx 字尾;只有當整合方硬性要求 .jar 時才改用 .jar。進階頁的歸檔字尾設定或掃描建議,會在 .p4jx.jar 之間切換已選的檔案名稱。核對 Java 版本、目標平臺、JIT 設定與掃描器覆蓋層,然後點選執行保護

    單一平臺的任務會精確寫入你所選的檔案路徑。選擇多個目標平臺時,GUI 會在該檔案所在目錄下依平臺建立子目錄,把對應的歸檔分別寫進去。

2. 適用情境

  • 保護屬於其他受控 P4JX 應用程式一部分的自有 JAR;
  • 由既有的啟動器載入 P4JX 歸檔;
  • 需要自行管理完整交付目錄的進階整合。

如果你要建置的是可直接執行的一般應用程式、Spring Boot 應用程式或 Tomcat 部署包,請改用對應的打包命令。

3. 基本命令

p4j encode library.jar library.p4jx

也可以使用簡寫形式:

p4j library.jar library.p4jx

encode 會精確寫入你給定的輸出檔案名稱,因此下面兩條命令產生的都是 P4JX 歸檔:

p4j encode library.jar library.p4jx
p4j encode library.jar library.jar

4. ZIP 覆蓋層

p4j encode library.jar library.p4jx \
  --zip-overlay scanner

覆蓋層只包含公開資源、目錄與中繼資料樁,用意是讓直接解析 ZIP 中央目錄的工具仍然可用。它不會暴露真實的受保護方法,也不會把 P4JX 歸檔變成一般 JAR。

5. 執行時需求

底層的 encode 不會產生 vlxjre,因此你必須自行提供與編碼時身分相符的 VLX 執行時。不要:

  • 用一般的 OpenJDK 或 Oracle JDK 載入歸檔;
  • 從其他版本的輸出包中複製 lib/modules 或原生函式庫;
  • 把歸檔與來自不同目標平臺、不同 JDK 訓練線或不同編碼任務的執行時搭配使用。

對一般交付專案,優先使用高層打包命令,它會自動維護好這些對應關係。

6. 授權

產生歸檔時必須成功取得伺服器簽發的授權,並嵌入結果中。正式帳號與試用模式走的是同一套歸檔驗證流程。在自動化環境中,絕對不要把密碼寫死在匯出的任務指令碼裡。