WIN11上使用GraalVM打包springboot3项目为本地可执行文件exe

耐心肝才能成功

  • 概念
  • 步骤概要
  • 详细步骤
    • [一. GraalVM 17](#一. GraalVM 17)
    • [二. 安装Visual Studio 2022](#二. 安装Visual Studio 2022)
    • [三. 创建springboot](#三. 创建springboot)
    • [四. IDEA最新版或者eclipse2025调试项目](#四. IDEA最新版或者eclipse2025调试项目)
    • [五. 打包exe](#五. 打包exe)

概念

springboot3生成的jar编译成windows本地C++文件,不再依赖JVM运行

WINDOW编译较为复杂,限制条件很多,需要耐心

步骤概要

一. 下载配置GraalVM 17(最好版本一致)

二. 安装Visual Studio 2022 C++桌面开发(必须2022以上)

三. springboot官网生成项目

四. IDEA最新版或者eclipse2025调试项目

五. 打包exe(使用x64 Native Tools Command Prompt for VS 2022)

总结了deepseek(采纳意见:使用x64 Native Tools Command Prompt for VS 2022打包),豆包(采纳意见:springboot官网生成项目),通义千问(采纳意见:下载配置GraalVM 17)等AI后步骤

详细步骤

一. GraalVM 17

1. 下载

链接: GraalVM 官方下载页面

选择适合 Windows 11 的 GraalVM 版本(建议选择最新的稳定版本),并下载包含 Java 17 或更高版本的社区版(CE)。

2. 安装

解压下载的压缩包到一个合适的目录,例如 C:\Program Files\GraalVM。
3. 配置环境变量

打开 "系统属性" -> "高级系统设置" -> "环境变量"。

在 "系统变量" 中,找到 Path 变量,编辑它并添加 GraalVM 的 bin 目录,例如 C:\Program Files\GraalVM\bin。

新增 JAVA_HOME 系统变量,值为 GraalVM 的安装目录,例如 C:\Program Files\GraalVM。
4. 验证安装

打开命令提示符或 PowerShell,运行以下命令:

shell 复制代码
java -version
## 正常会出现GraalVM
  1. 安装本地编译插件GraalVM Native Image
shell 复制代码
## 安装
gu install native-image
## 验证
gu list

如果无法远程安装,AI其他方式下载安装

二. 安装Visual Studio 2022

  1. 官网下载(社区版是免费的,安装社区版就可以了,下载2022版本,2019版本经测试打包失败)
  2. 选择C++桌面开发(主要是要用他的一个工具x64 Native Tools Command Prompt for VS 2022)
  3. 验证
    本地程序搜索x64 Native Tools Command Prompt for VS 2022

三. 创建springboot

官网创建
spring官网创建项目,IDEA创建也可以

四. IDEA最新版或者eclipse2025调试项目

  • IDEA需要最新版,如果没有,下载最新版eclipse也行

  • 这里使用eclipse-2025-03导入项目,选择导入已存在maven项目

  • maven自行配置,要求maven-3.6.3+

  • 导入后在主类运行测试

  • 项目根目录运行maven打包,maven打包成jar测试

shell 复制代码
## 清理下无用缓存
mvn clean
## 编译
mvn compile
## 打包成jar
mvn package
## 运行下Jar测试
java -jar demo.jar

五. 打包exe

  • 打开x64 Native Tools Command Prompt for VS 2022(普通cmd会打包失败,因为命令行有字符长度限制)
shell 复制代码
## 根目录运行命令打包成exe,成功后在target目录出现demo.exe
mvn -Pnative native:compile

以下其他可选打包方式:

  • 打包成镜像(需要本地安装了docker,会打包成docker镜像)
    mvn -Pnative spring-boot:build-image
    项目过大时,加大maven内存
    mvn -Pnative native:compile -Dnative.xmx=8g

编程成功!

启动速度大幅增加

常见错误:

可能的原因:

  1. 使用了普通cmd编辑
  2. 使用了x86 Native Tools Command Prompt for VS 2022,这个编译32位的,测试编译不通过
  3. 未安装x64 Native Tools Command Prompt for VS 2022,或者权限不足
  4. 反射为标明注解(本地EXE无法使用反射,需要标注,编译时会检查反射和JNI)
  5. 资源文件未指定(资源文件无法打包,需要指定成外部读取)

参考

https://blog.csdn.net/qq_27935091/article/details/129981470

https://blog.csdn.net/cnzzs/article/details/145273234

相关推荐
guozhetao3 分钟前
【ST表、倍增】P7167 [eJOI 2020] Fountain (Day1)
java·c++·python·算法·leetcode·深度优先·图论
技术思考者3 分钟前
基础很薄弱如何规划考研
java·经验分享·考研
●VON26 分钟前
重生之我在暑假学习微服务第二天《MybatisPlus-下篇》
java·学习·微服务·架构·mybatis-plus
老华带你飞26 分钟前
口腔助手|口腔挂号预约小程序|基于微信小程序的口腔门诊预约系统的设计与实现(源码+数据库+文档)
java·数据库·微信小程序·小程序·论文·毕设·口腔小程序
hqxstudying36 分钟前
J2EE模式---服务层模式
java·数据库·后端·spring·oracle·java-ee
GM_82842 分钟前
【最新最完整】SpringAI-1.0.0开发MCP Server,搭建MCP Client 实战笔记(进阶+详细+完整代码)
java·后端·ai编程·springai·mcp
都叫我大帅哥43 分钟前
Java DelayQueue:时间管理大师的终极武器
java
秋千码途1 小时前
小架构step系列27:Hibernate提供的validator
java·spring·架构·hibernate
都叫我大帅哥1 小时前
TOGAF迁移规划阶段全解密:从菜鸟到达人的通关秘籍
java
探索java1 小时前
深入理解 Spring 中的 XmlBeanFactory 原理及实践
java·spring·xmlbeanfactory