GUI 使用指南

GUI 以向导方式完成保护任务,流程为:

应用类型 → 输入/运行时/平台 → 简单或高级参数 → 输出确认 → 执行

1. 应用类型

GUI 选项输入输出对应 CLI
Java Application普通可执行 JAR完整应用目录javaapp
Spring BootSpring Boot 应用完整应用目录springboot
Tomcat WARWAR内嵌 Tomcat 目录tomcat
Library Encryption任意 JAR单个 P4JX 归档encode

选择错误的类型可能导致主类、依赖、Web 资源或启动器无法正确处理。

应用类型页面

2. 输入、运行时与目标平台

一次向导任务选择一个输入 JAR 或 WAR。随后选择:

  • Java 版本:8、11、17、21 或 25,默认 21。
  • Target platforms:可以一次选择多个平台。
  • Mode:简单模式或高级模式。

当选择多个平台时,工具会为每个平台生成独立目录。

输入、Java 版本和目标平台页面

3. 简单模式

简单模式适合绝大多数首次打包任务。离开输入页时,工具自动执行兼容性扫描,并根据结果选择:

  • 建议排除的类;
  • 是否启用 JavaFX 和 WebView;
  • 是否启用扫描器 ZIP overlay;
  • 是否改用 .jar 后缀;
  • Spring Boot 的推荐布局;
  • Tomcat 9 或 10.1。

扫描结果是静态分析建议,不是完整的运行测试。打包后仍应在目标平台进行应用测试。

4. 高级模式

高级模式可以手动配置归档后缀、设置是否禁用JIT、添加scanner overlay层、设置JVM 参数、设置排除规则以及各应用类型的专用选项。

完整的操作说明、参数含义、默认值和应用类型差异统一参见 Protector4J 高级模式设置

普通 Java 应用高级参数

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.sh
  • p4j-encrypt-run.bat

脚本调用已安装的 p4j 命令,并保存当前已解析的选项。账号邮箱和密码不会写入文件。

使用窗口顶部 加载运行脚本 可重新加载脚本并恢复任务,然后直接进入最终确认页。旧版脚本没有任务元数据时,GUI 会尝试解析其中的 p4j 命令。