当前位置: 首页 > news >正文

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

耐心肝才能成功

  • 概念
  • 步骤概要
  • 详细步骤
    • 一. GraalVM 17
    • 二. 安装Visual Studio 2022
    • 三. 创建springboot
    • 四. IDEA最新版或者eclipse2025调试项目
    • 五. 打包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,运行以下命令:

java -version
## 正常会出现GraalVM
  1. 安装本地编译插件GraalVM Native Image
## 安装
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测试

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

五. 打包exe

  • 打开x64 Native Tools Command Prompt for VS 2022(普通cmd会打包失败,因为命令行有字符长度限制)
## 根目录运行命令打包成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

相关文章:

  • 笔试-士兵过河
  • android 的抓包工具
  • Vue 入门到实战 十
  • 【算法】【位运算】acwing算法基础 801. 二进制中1的个数
  • 计算机毕业设计PySpark+Hadoop+Hive机票预测 飞机票航班数据分析可视化大屏 航班预测系统 机票爬虫 飞机票推荐系统 大数据毕业设计
  • 开启AI绘画的魔法大门!探索Stable Diffusion的无限魅力~
  • Python学习笔记 ver1.0
  • vue3 ref/reactive 修改数组的方法
  • 数据结构——红黑树的实现
  • Github Action自动流翻译README文档【CI/CD】
  • npm install 失败
  • 利用盲注技术获取表、列、具体数据
  • 英码科技基于昇腾算力实现DeepSeek离线部署
  • 日本股市概览:主要指数、经济泡沫与现代市场趋势(中英双语)
  • 深入理解C#结构型设计模式:类适配器与对象适配器
  • 公网IP、私网IP、动态IP、静态IP
  • ubuntu 实时系统安装Nvidia驱动
  • 网络安全 | 安全信息与事件管理(SIEM)系统的选型与实施
  • 08模拟法 + 技巧 + 数学 + 缓存(D1_模拟法)
  • 信息收集-Web应用JS架构URL提取数据匹配Fuzz接口WebPack分析自动化
  • 张涌任西安市委常委,已卸任西安市副市长职务
  • 在古老的意大利科莫歌剧院,廖昌永唱响16首中国艺术歌曲
  • 习近平会见哥伦比亚总统佩特罗
  • 中国人民抗日战争暨世界反法西斯战争胜利80周年纪念活动标识发布
  • 长沙通报一出租房疑存非法代孕:查封涉事场所,相关人员被控制
  • 中国科考船在钓鱼岛附近活动,外交部:完全是中国主权权利范围内的事