保护JavaSE应用程序
入门视频
下载
访问https://protector4j.com/download 下载最新版本
安装
Windows 和 Linux
没有特殊的安装步骤,只需下载存档并解压即可。
macOS
下载dmg文件并将Protector4J拖到Applications
。此工具的实际内容是 /Applications/Protector4J.app/Contents/protector4j-mac
使用 GUI 工具加密 JavaSE 应用程序
进入Protector4J文件夹,执行p4j-ui[.exe],您将看到以下用户界面。
对于 macOS 用户,只需像常规 Mac 应用程序一样双击 Protector4J.app。
登录
如果您已经购买了许可证,请点击右上角的登录按钮并输入您的用户信息。如果您没有许可证,仍然可以试用此工具。
选择应用类型
单击应用程序类型页面上的“JavaSE 应用程序”按钮。
选择需要加密的jar/war文件
选择需要加密的jar/war文件,可以选择一个或多个
选项
仅加密 jar 文件
只加密jar文件,不部署整个jre。该选项通常与 KeySeed 功能结合使用来更新现有程序。
创建可执行文件
创建用于启动应用程序的可执行文件,请勿添加 .exe 扩展名。
隐藏控制台
该选项仅对Windows上的GUI程序有效,用于在程序执行期间隐藏命令行窗口。
JVM选项
设置 JVM 选项,例如 -Xmx 和 -Xms,以空格或换行符分隔。
输出
Java版本选择
选择 Java 版本,支持 Java 8、Java 11、Java 17 和 Java 21
创建新文件夹
默认选择,加密任务会在输出文件夹中创建一个名为p4j-[task-id]的文件,输出结果保存在此文件夹中。
包括 JavaFX
如果是JavaFX应用程序,请选择此选项
SWT 应用程序
如果是SWT应用程序,请选择此选项。
KeySeed
加密任务默认会向服务器请求随机密钥进行加密。不同加密任务生成的文件不能一起使用。 如果指定了KeySeed,则相同的KeySeed将生成相同的加密密钥。此选项可以与之前的“仅加密 Jar 文件”选项一起使用来更新现有应用程序。 此选项仅对许可用户有效。
执行加密任务
请稍等片刻,加密任务完成后,您可以在输出文件夹中看到加密应用程序的输出结果。
运行加密应用程序
运行加密应用程序有三种方法
- 使用exe文件运行
如果目标平台是Window,则可以使用加密任务中生成的可执行文件来运行加密的应用程序。
- 使用脚本运行
如果目标平台是Linux或macOS,您可以找到一个名为的脚本文件exe-name.sh
,您就可以用这个脚本文件运行应用程序。
- 使用传统 Java 命令运行程序
您也可以使用vlxjre /bin/java手动运行该程序,此命令的格式与普通的java命令相同。
我们可以在输出目录中看到一个名为vlxjre的文件夹,这个文件夹就是我们自定义的JRE,加密后的jar文件就存放在vlxlib文件夹中。
vlxjre/bin/java -jar vlxlib/xxx.jar
vlxjre/bin/java -cp vlxlib/xxx.jar MainClass
vlxjre/bin/java -cp "vlxlib/*" MainClass
vlxjre/bin/java -Xms512M -Xmx1024m -cp "vlxlib/*" MainClass
Java 8 目前不支持通过 vlxjre/bin/java -jar 运行。请使用 vlxjre/bin/java -cp xx MainClass
注意事项
如果该程序的目标平台是 macOS 或 Linux,但它是在 Windows 上构建的,请执行 add-executable-permission.sh
在目标平台上,在首次启动之前授予程序执行权限。
修改exe文件的JVM参数
视窗
如果需要修改exe文件的JVM参数,请编辑 exe-name.json
并修改JArgs数组中的值。
"JArgs": [
"-DParam1=value1",
"-DParam2=value2"
]
Linux 和 macOS
只需打开脚本文件并添加或修改JVM参数。
使用 CLI 工具加密 JavaSE 应用程序。
配置文件
CLI工具需要指定一个任务文件作为参数。
前往 protector4j/task-templates
文件夹,查找 java-task.yml
,复制并修改一个。
# Available values: 8,11,17,21
javaVersion: 17
# The jar files that need to be encrypted
jarFiles: []
# 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 main class of this Java Application
mainClass: ''
# 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
# available values: [win, linux, mac] or empty for current platform
platforms: []
执行加密任务。
转到 Protector4J 文件夹并执行以下命令。
Linux 或 macOS
对于 macOS 用户,您可以在以下位置找到 CLI 工具 /Applictions/Protector4J.app/Contents/protector4j-mac
。
./p4j -t java -f path-of-task-file
视窗
p4j -t java -f path-of-task-file
您可以执行 p4j --help
查看详细参数。
使用帐户信息运行
./p4j -t java -f path-of-task-file -u email -p password
查看结果
加密任务完成后,请到输出文件夹检查结果。
运行加密应用程序
运行加密应用程序有三种方法
- 使用exe文件运行
如果目标平台是Window,则可以使用加密任务生成的可执行文件来运行加密的应用程序。
- 使用脚本运行
如果目标平台是 Linux 或 macOS,您可以找到名为 exe-name.sh
,您就可以用这个脚本文件运行应用程序。
- 使用传统 Java 命令运行程序
您也可以使用vlxjre /bin/java手动运行该程序,此命令的格式与普通的java命令相同。
我们可以在输出目录中看到一个名为vlxjre的文件夹,这个文件夹就是我们自定义的JRE,加密后的jar文件就存放在vlxlib文件夹中。
vlxjre/bin/java -jar vlxlib/xxx.jar
vlxjre/bin/java -cp vlxlib/xxx.jar MainClass
vlxjre/bin/java -cp "vlxlib/*" MainClass
vlxjre/bin/java -Xms512M -Xmx1024m -cp "vlxlib/*" MainClass
Java 8 目前不支持通过 vlxjre/bin/java -jar 运行。请使用 vlxjre/bin/java -cp xx MainClass
注意事项
如果该程序的目标平台是 macOS 或 Linux,但它是在 Windows 上构建的,请执行 add-executable-permission.sh
在目标平台上,在首次启动之前授予程序执行权限。