Windows 10 环境下使用 GraalVM JDK 21 + Spring Boot 3.5 构建 Native Image

环境准备

操作系统要求

Windows 10 x64 系统,确保系统更新至最新补丁。

开发工具清单

  • IntelliJ IDEA 2024.x(需支持GraalVM和Spring Boot 3.5)
  • GraalVM JDK 21(Oracle或Liberica版本)
  • Maven 3.8.x及以上版本
  • 必备IDEA插件:Spring Boot Extension Pack、GraalVM Native Image

开发框架

Spring Boot 3.5(确认项目依赖已适配Native Image支持)


GraalVM JDK 21安装步骤

下载与解压

从Oracle或BellSoft官网下载GraalVM JDK 21的Windows版本,解压至非中文路径(如C:\graalvm-jdk-21.0.1+12.1)。

环境变量配置

  1. 新增系统变量:

    复制代码
    JAVA_HOME=C:\graalvm-jdk-21.0.1+12.1
  2. 更新Path变量:

    复制代码
    %JAVA_HOME%\bin

验证与工具安装

执行命令验证安装:

bash 复制代码
java -version

若需手动安装Native Image工具:

bash 复制代码
gu install native-image

Visual Studio 2022配置

组件选择

  1. 安装时仅保留英文语言包(避免构建失败)
  2. 勾选以下核心组件:
    • "使用C++的桌面开发"
    • Windows SDK(最新版本)
    • C++ CMake工具
    • 编译器及运行时库

环境加载

安装完成后重启系统,或手动执行以下命令加载环境变量:

cmd 复制代码
call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"

IntelliJ IDEA配置

SDK设置

  1. 进入File > Project Structure > SDKs
  2. 添加GraalVM JDK 21的安装路径
  3. 将项目SDK切换为GraalVM

Native支持启用

在pom.xml中添加依赖:

xml 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aot</artifactId>
</dependency>

IDEA的Maven面板中激活native Profile。


Maven插件配置

pom.xml示例

xml 复制代码
<plugin>
    <groupId>org.graalvm.buildtools</groupId>
    <artifactId>native-maven-plugin</artifactId>
    <configuration>
        <imageName>demo1</imageName>
        <mainClass>com.example.DemoApplication</mainClass>
        <buildArgs>
            --no-fallback
        </buildArgs>
    </configuration>
</plugin>

参数说明

  • imageName:输出可执行文件名(Windows下为.exe)
  • mainClass:Spring Boot主类全限定名
  • buildArgs:--no-fallback禁用JVM回退模式

构建与运行

IDEA构建方式

  1. 打开Maven面板
  2. 执行Plugins > native > native:build

命令行构建

bash 复制代码
mvn clean install -Pnative

生成文件路径:target/demo1.exe


常见问题解决

C编译器缺失

  • 确认Visual Studio 2022的C++组件已安装
  • 检查环境变量是否包含cl.exe路径(如C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\<version>\bin\Hostx64\x64)

运行时错误

  • 检查mainClass配置是否正确
  • 确认反射或资源文件已通过AOT处理(需额外配置reflect-config.json)

参考资源

相关推荐
无所谓^_^17 小时前
个人健康管理系统 | Springboot3 | Vue3
java·vue·毕业设计·springboot·课程设计·毕设·前后端分离
-星空下无敌2 天前
Windows Docker K8s 安装部署Naocs ,SpringBoot 3.x 4.x 整合Naocs 版本兼容 配置中心、服务注册与发现
windows·docker·nacos·kubernetes·springboot·alibaba
欢醉2 天前
前后端Long精度丢失的踩坑
springboot·springcloud
这个昵称不容易3 天前
SpringBoot 墙绘交易平台毕设:128个文件154个接口含论文,带运行截图
java·springboot·毕设
坐吃山猪5 天前
SpringBoot2.7集成Knife4j
springboot·knife4j
AI开源软件6 天前
SpringBoot信创项目怎么验收?从数据库迁移到交付证据
postgresql·springboot·达梦·opengauss·信创·企业管理系统
咖啡八杯7 天前
Redis 工具封装:RedisCache 对 Operations 体系的二次封装
java·数据库·redis·缓存·框架·springboot·若依
西凉的悲伤10 天前
Spring Boot 条件装配注解详解
java·springboot·1024程序员节·条件装配
xieliyu.11 天前
【JavaEE进阶】Spring Boot 日志:从 System.out 到 @Slf4j,6 个级别 + 4 类配置一篇讲透
java·spring boot·spring·java-ee·springboot·logback·slf4j
AI开源软件11 天前
SpringBoot + Vue3 人力资源管理系统推荐:组织、档案与移动办公
vue3·springboot·ruoyi·oa系统·移动办公·人力资源管理系统·hrm