保护 Java 类库
Library Encryption 对应低层 encode 命令,只生成一个受保护归档,不复制运行时,也不生成应用启动脚本。
1. GUI 操作
-
在应用类型页选择 Library Encryption。如果需要一个能直接启动的交付包,应改选 Java Application、Spring Boot 或 Tomcat WAR。

-
选择输入 JAR、与实际加载环境一致的 Java 版本和目标平台,再选择简单模式或高级模式。类库输出不携带
vlxjre,但这些选择仍用于确定归档对应的运行时身份;不要为了减少产物数量而把不同平台的输出混用。
-
简单模式会扫描输入 JAR,自动应用 Library Encryption 支持的扫描器 ZIP overlay 和归档后缀建议。它仍会加密输入 JAR 中的所有
.class条目,其他资源保持未加密。 -
高级模式可按需设置:
- Disable JIT for protected methods:让保护方法仅在解释器中执行;
- Append scanner ZIP overlay:向直接解析 ZIP 中央目录的工具提供公开资源和元数据桩;
- Compatibility scan…:扫描 ZIP 访问、后缀假设、JNI/原生类和运行时字节码读取等兼容性风险。
-
在输出页选择完整的输出文件名,通常使用
.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. 许可
生成归档时必须成功取得并嵌入服务器签发的许可。正式账号和试用模式遵循相同的归档校验流程。自动化环境不要在导出的任务脚本中硬编码密码。