前言

Java 25 的发布带来了不少值得深入探索的特性,从增强的并发工具到更灵活的语法支持,进一步夯实了 Java 生态的实用性;而紧随其后的 GraalVM 25,更是在原生镜像编译领域再添亮点 —— 不仅延续了 GraalVM 一贯的高性能优势,还对多语言交互、内存优化做了不少升级,让 “将 Java 应用编译为轻量原生二进制文件” 这件事变得更高效、更易用。​

正是这些技术亮点的驱动,我决定以 “构建适用于 Windows 11 系统的原生镜像” 为核心目标,展开本次学习实践。

环境说明

  • VS Studio 2026
  • GraalVM 25
  • Maven 3.9.11
  • Springboot 3.5.6

项目说明

为了测试 GraalVM 25 的原生镜像构建能力,我这边使用了最新版的 Springboot3,采用多模块 Maven 项目架构,进行验证。

项目结构

|- tmxk	(parent 依赖管理)
|--core	(项目核心依赖)
|--ops	(测试模块、web、GraalVM 插件)

ops 作为本次测试模块,提供了 /api/hello 的测试接口,返回值为 core 模块的 SgResp 类,返回内容为 {"msg":"Hello World!","code":"0","data":null}

项目插件配置

GraalVM 插件配置
ops 模块增加以下插件配置。

<plugin>
    <groupId>org.graalvm.buildtools</groupId>
    <artifactId>native-maven-plugin</artifactId>
    <configuration>
        <mainClass>site.cspy.ops.OpsApplication</mainClass>
    </configuration>
    <executions>
    </executions>
</plugin>

环境配置

1. VS Studio 2026 安装

VS 2026 Installer下载地址

选择需要的环境,并点击右下角安装。

vs2026安装

安装完成后,重启系统。搜索并进入 x64 Native Tools Command Prompt 环境。

进入x64编译环境

进入 Native 环境后,终端效果如图所示。

x64 Native command

2. Java、Maven 环境变量设置(临时)

rem 自行对应路径,这种设置方式为临时配置,只用于测试。

rem 设置 JAVA_HOME(指向 GraalVM 安装目录)
set JAVA_HOME=C:\Users\Gu\.jdks\graalvm-jdk-25+37.1

rem 设置 MAVEN_HOME(指向 Maven 安装目录)
set MAVEN_HOME=C:\Users\Gu\env\apache-maven-3.9.11

rem 将 JDK 和 Maven 的 bin 目录添加到 PATH 最前方
set PATH=%JAVA_HOME%\bin;%MAVEN_HOME%\bin;%PATH%

rem 测试命令
java -version
native-image --version
mvn -version

验证环境变量

验证环境
执行测试命令输出如上,则表示环境安装成功。

原生镜像打包

完成上述环境配置后,可以进行 Windows 11 原生镜像打包。

rem 进入项目目录
cd C:\Users\Gu\IdeaProjects\tmxk

rem 构建 ops 模块的原生镜像
mvn -pl ops -Pnative native:compile

原生镜像打包中

原生镜像打包中

打包完成

打包完成

直接执行原生镜像

直接执行原生镜像

验证结果

运行结果

无Java环境执行效果

无Java执行

后记

本文章记录了如何在 Windows 11 系统 上进行原生镜像打包,后续会基于 Docker Image 进行跨平台构建原生镜像,比如说老版本的 Linux 系统(GLIBC 2.28)。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐