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。随后选择:
- Java 版本: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 命令,并保存当前已解析的选项。账号邮箱和密码不会写入文件。
使用窗口顶部 加载运行脚本 可重新加载脚本并恢复任务,然后直接进入最终确认页。旧版脚本没有任务元数据时,GUI 会尝试解析其中的 p4j 命令。