You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows构建可在Linux运行的SpringBoot 3 GraalVM原生二进制文件?

解决Windows构建Linux兼容SpringBoot 3原生二进制文件的方案

方法一:使用WSL(Windows子系统Linux)构建

这是最简便的免费方案,WSL是Windows原生支持的Linux环境,无需额外付费或双系统。

步骤1:安装WSL

打开管理员权限的PowerShell,执行命令:

wsl --install

按提示重启电脑后,完成默认Ubuntu发行版的安装,设置好用户名和密码即可。

步骤2:在WSL中配置构建环境

  1. 进入WSL终端,更新系统包:
sudo apt update && sudo apt upgrade -y
  1. 安装SpringBoot 3要求的OpenJDK 17:
sudo apt install openjdk-17-jdk -y
  1. 安装并配置GraalVM:
    • 下载对应Linux版本的GraalVM(以Java 17版本为例):
      wget https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.1/graalvm-ce-java17-linux-amd64-21.0.1.tar.gz
      
    • 解压到系统目录:
      sudo tar -xzf graalvm-ce-java17-linux-amd64-21.0.1.tar.gz -C /usr/local/
      
    • 编辑~/.bashrc配置环境变量:
      nano ~/.bashrc
      
      添加以下内容:
      export GRAALVM_HOME=/usr/local/graalvm-ce-java17-21.0.1
      export PATH=$GRAALVM_HOME/bin:$PATH
      
      保存退出后执行source ~/.bashrc使配置生效。
  2. 安装Native Image组件:
gu install native-image
  1. 安装编译依赖:
sudo apt install build-essential libz-dev zlib1g-dev -y

步骤3:在WSL中构建原生二进制文件

  1. 进入挂载到WSL的Windows项目目录(Windows盘符默认挂载在/mnt/下,比如C盘对应/mnt/c/):
cd /mnt/c/Users/你的用户名/Projects/你的SpringBoot项目路径
  1. 执行构建命令:
    • Maven项目:
      ./mvnw native:compile -Pnative
      
    • Gradle项目:
      ./gradlew nativeCompile
      

构建完成后,生成的二进制文件位于target/(Maven)或build/native/nativeCompile/(Gradle)目录,可直接复制到Linux主机运行。

方法二:使用Docker Desktop(Windows版)构建

若已安装Docker Desktop免费版,可通过容器化环境完成跨平台构建:

步骤1:确认Docker Desktop使用Linux容器

打开Docker Desktop,在设置中确认默认使用Linux容器(默认配置即为该选项)。

步骤2:通过GraalVM镜像构建

进入Windows端的项目目录,打开PowerShell执行对应命令:

  • Maven项目:
    docker run --rm -v "${PWD}:/workspace" -w /workspace ghcr.io/graalvm/graalvm-ce:java17-21.0.1 bash -c "gu install native-image && ./mvnw native:compile -Pnative"
    
  • Gradle项目:
    docker run --rm -v "${PWD}:/workspace" -w /workspace ghcr.io/graalvm/graalvm-ce:java17-21.0.1 bash -c "gu install native-image && ./gradlew nativeCompile"
    

构建完成后,生成的二进制文件同样在项目的target/或build/目录下,直接复制到Linux主机即可运行。

注意事项

  • 确保项目的构建配置文件已添加SpringBoot Native插件,比如Maven的pom.xml中需包含:
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
            <image>
                <builder>paketobuildpacks/builder-jammy-base:latest</builder>
            </image>
        </configuration>
    </plugin>
    
  • 尽量使用较新的Linux发行版(如Ubuntu 22.04)环境构建,生成的二进制文件对不同Linux主机的兼容性更好。

内容的提问来源于stack exchange,提问作者PatPanda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 09:40:32