保護 Java 類庫

Library Encryption 對應低層 encode 命令,只生成一個受保護歸檔,不復制執行時,也不生成應用啟動指令碼。

1. GUI 操作

  1. 在應用型別頁選擇 Library Encryption。如果需要一個能直接啟動的交付包,應改選 Java ApplicationSpring BootTomcat WAR

    選擇 Library Encryption

  2. 選擇輸入 JAR、與實際載入環境一致的 Java 版本和目標平臺,再選擇簡單模式或高階模式。類庫輸出不攜帶 vlxjre,但這些選擇仍用於確定歸檔對應的執行時身份;不要為了減少產物數量而把不同平臺的輸出混用。

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

  3. 簡單模式會掃描輸入 JAR,自動應用 Library Encryption 支援的掃描器 ZIP overlay 和歸檔字尾建議。它仍會加密輸入 JAR 中的所有 .class 條目,其他資源保持未加密。

  4. 高階模式可按需設定:

    • Disable JIT for protected methods:讓保護方法僅在直譯器中執行;
    • Append scanner ZIP overlay:向直接解析 ZIP 中央目錄的工具提供公開資源和後設資料樁;
    • Compatibility scan…:掃描 ZIP 訪問、字尾假設、JNI/原生類和執行時位元組碼讀取等相容性風險。
  5. 在輸出頁選擇完整的輸出檔名,通常使用 .p4jx;僅在整合程式硬編碼要求 .jar 字尾時才使用 .jar。高階頁的 Archive suffix 選擇或掃描建議會同步已選檔案的 .p4jx/.jar 字尾。複核 Java 版本、目標平臺、JIT、scanner overlay,然後點選 Run protection

    單平臺任務使用所選的精確檔案路徑。選擇多個目標平臺時,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 overlay

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

overlay 只包含公開資源、目錄和後設資料樁,用於相容直接解析 ZIP 中央目錄的工具。它不會暴露真實保護方法,也不會把 P4JX 變成普通 JAR。

5. 執行時要求

低層 encode 不生成 vlxjre,使用方必須提供與編碼時身份匹配的 VLX 執行時。不要:

  • 使用普通 OpenJDK/Oracle JDK 載入;
  • 從另一版本輸出包複製 lib/modules 或 native 庫;
  • 把不同目標平臺、JDK 訓練線或編碼任務的執行時與歸檔混用。

對於普通交付專案,優先使用高層打包命令自動維護這些關係。

6. 許可

生成歸檔時必須成功取得並嵌入伺服器簽發的許可。正式賬號和試用模式遵循相同的歸檔校驗流程。自動化環境不要在匯出的任務指令碼中硬編碼密碼。