最近有一个springweb项目,需要放到客户端,但是又不想让一些人破解反编译jar包,于是我将项目打包成加密exe,让一些人无法简单破解。本文就是介绍详细的配置步骤。
一. pom.xml配置
首先需要配置maven pom文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.hadluo</groupId>
<artifactId>fish-agent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>fish-agent</name>
<description>fish agent</description>
<properties>
<java.version>17</java.version>
</properties>
<repositories>
<repository>
<id>aliyun</id>
<name>Aliyun Maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>aliyun-plugin</id>
<name>Aliyun Maven Plugin</name>
<url>https://maven.aliyun.com/repository/public</url>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<mainClass>com.hadluo.fish.agent.App</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>process-aot</id>
<goals>
<goal>process-aot</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
注意修改你的MainClass 路径。
二. VC桌面环境
在下面地址下载vs_BuildTools.exe ,也可自行到官网下载。
下载后,只安装一个工具:
- "使用 C++ 的桌面开发" (Desktop development with C++)
- (只要勾这一个就够了,右边的可选组件保持默认即可,它会自动包含 MSVC 编译器、Windows 10/11 SDK 等)
安装好之后,在开始菜单就会出现:
三. graalvm17环境
GraalVM 17 是一个高性能的多语言虚拟机,基于 JDK 17 构建但增加了关键特性。它包含 Graal JIT 编译器(替代传统的 HotSpot JIT),能提供更好的运行时性能优化。最重要的是,GraalVM 支持 Native Image(AOT 编译),可将 Java 程序编译为本地可执行文件,显著提升启动速度和降低内存占用。此外,它还具备多语言能力,可在同一运行时中运行 JavaScript、Python、Ruby 等语言。
在下面地址下载graalvm17 , 并且为其配置好JAVA_HOME环境变量:
文件名: graalvm-ce-java17-windows-amd64-22.3.3.zip
也可自行到官网下载。
四. idea构建
在开始菜单找到x64 Native Tools Command Prompt for VS 2022,然后启动:
找到idea.exe , 然后将其拖到黑框里面(注意idea的快捷方式不行),然后回车运行idea,然后配置好jdk为graalvm17:
然后找到maven插件的native下的native:compile 进行编译,等待即可:
会在target目录下面输出: