保护SpringBoot应用程序
入门视频
▶️ https://www.youtube.com/watch?v=FKqruAJAJFw
下载
访问 https://protector4j.com/download 下载最新版。
安装
Windows 与 Linux
没有特别的安装步骤, 只需要下载压缩包并解压即可。
macOS
下载dmg文件并拖拽Protector4J到Applications, 程序的实际内容在Protector4J.app/Contents/protector4j-mac

使用GUI工具加密SpringBoot应用
进入Protector4J文件夹, 运行p4j-ui[.exe] , 你将会看到下面的用户界面
对于macOS用户, 像普通mac应用一样双击Protector4J.app即可

登录
如果你已经购买了授权, 请点击右上角的登录按钮,输入用户信息,如果没有授权,您仍然可以试用这个工具

选择应用类型
在程序类型页面点击"Spring Boot Application"按钮。

选择需要加密的jar/war文件
选择需要加密的jar/war文件,可以单选或者多选

选项
Just encrypt jar files
只加密jar文件,不输出整个jre, 这个选项通常与KeySeed特性结合使用,用于更新现有的程序。
创建可执行文件
创建用于启动应用的可执行文件, 请不要添加.exe扩展名.

隐藏命令行窗口
这个选项仅对Windows下的GUI程序有效,用于隐藏程序执行时的命令行窗口
JVM选项
设置JVM选项,如-Xmx与-Xms等,以空格或者换行分割。
输出

执行加密任务
请等待一段时间,待加密任务完成之后,您可以在输出文件夹中看到输出的加密应用。

运行加密的应用
有三种方式运行加密后的应用
- 使用exe文件运行
使用加密任务生成的可执行文件运行加密应用
- 使用脚本运行
使用与exe文件同名的脚本文件运行应用,如果你打开这个脚本文件,你可以看到我们如何使用传统的Java命令运行程序。
- 使用传统的Java命令运行程序
你也可以使用传统的Java命令手动运行程序,命令的格式与传统Java命令相同。
我们可以在输出文件夹中看到一个命名vlxjre的文件夹,这是我们定制的jre运行环境,同时加密后的jar文件存储在vlxlib文件夹中。
vlxjre/bin/java -cp "vlxlib/*" MainClass
vlxjre/bin/java -Xms512M -Xmx1024m -cp "vlxlib/*" MainClass
注意事项
如果这个程序的目标平台是macOS或者Linux,但是在Windows下生成,在首次使用时请在目标平台上运行add-executable-permission.sh,以给予程序运行权限。
修改exe文件的运行参数
如果你需要修改exe文件的JVM参数, 编码exe-name.json, 修改JVMOptions数组的值
"JArgs" : [
"-DParam1=value1",
"-DParam2=value2"
]
使用命令行工具加密SpringBoot应用
配置文件
命令行工具需要指定一个任务文件作为参数
在task-templates文件夹中找到spring-boot-task.yml,复制并且修改
# Available values: 8,11,17
javaVersion: 8
# The jar file of spring boot application
springBootJarFile: ''
# Only encrypt the jar files, do not deploy the runtime
# This option is used while upgrading an existing application
onlyEncryptJarFiles: false
## [ Executable file information ]
# The executable file name
exeFileName: ''
# Hide command line window, only valid for Windows
hideConsole: false
# The splash image
splash: ''
# JVM Options
jvmOptions: []
## [ Output Options ]
# The output folder
outputFolder: ''
# Create a new and unique folder for the application, the folder name is like p4j-<taskId>
createNewFolder: true
# Whether this is a JavaFX application
includeJavaFX: false
# Whether this a swt gui application
swtApplication: false
# Fixed key seed, only avaiable for licensed user
# Jars encrypted in different tasks can be used together with same key seed
keySeed: ''
# The target platforms, keep it empty for current plaform,
# available values: [win, linux, mac]
platforms: []
执行加密任务
进入到Protector4J文件夹执行下面命令
Linux或macOS
对于macOS用户,你可以在Protector4J.app/Contents/protector4j-mac下找到cli工具
./p4j -t java -f path-of-task-file
Windows
p4j -t java -f path-of-task-file
> -t task type > > -f task file
可以运行p4j --help查看详细参数
添加用户信息运行
./p4j -t java -f path-of-task-file -u email -p password
查看结果
加密任务完成之后,请前往输出文件夹查看结果。
运行加密的应用
有三种方式运行加密后的应用
- 使用exe文件运行
使用加密任务生成的可执行文件运行加密应用
- 使用脚本运行
使用与exe文件同名的脚本文件运行应用,如果你打开这个脚本文件,你可以看到我们如何使用传统的Java命令运行程序。
- 使用传统的Java命令运行程序
你也可以使用传统的Java命令手动运行程序,命令的格式与传统Java命令相同。
我们可以在输出文件夹中看到一个命名vlxjre的文件夹,这是我们定制的jre运行环境,同时加密后的jar文件存储在vlxlib文件夹中。
vlxjre/bin/java -cp "vlxlib/*" MainClass
vlxjre/bin/java -Xms512M -Xmx1024m -cp "vlxlib/*" MainClass