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

参考资源

相关推荐
苏渡苇7 小时前
DeepSeek V4 实战:自然语言生成 SQL + 智能优化引擎
ai·springboot·spring ai·deepseek·ai推理·deepseek v4·自然语言生成sql
玛卡巴卡ldf11 小时前
【Springboot升级AI】(大模型部署)LangChain4j、会话记忆、隔离消失持久化问题、ollama、RAG知识库、Tools工具
java·开发语言·人工智能·spring boot·后端·springboot
Nick_zcy1 天前
小说在线阅读网站和小说管理系统 · 功能全解析
java·后端·python·springboot·ruoyi
苏渡苇1 天前
DeepSeek V4 实战:打造一个智能 Java 项目源码分析助手
springboot·jdk21·spring ai·deepseek·deepseek v4
玛卡巴卡ldf3 天前
【Springboot9】将业务模块数据导出为PDF
pdf·springboot
阿冰冰呀4 天前
互联网大厂Java求职面试实录:谢飞机的“水货”之路
java·mybatis·dubbo·springboot·线程池·多线程·hashmap
下次再写8 天前
Java互联网大厂面试技术问答实战:涵盖Java SE、Spring Boot、微服务及多场景应用
java·数据库·缓存·面试·springboot·microservices·技术问答
程序员老邢8 天前
【技术底稿 18】FTP 文件处理 + LibreOffice Word 转 PDF 在线预览 + 集群乱码终极排查全记录
java·经验分享·后端·pdf·word·springboot
DavidSoCool8 天前
Springboot AI 创建MCP Server
java·spring·ai·大模型·springboot·mcp