正常流程
一、环境准备
Windows 11
GraalVM JDK 21
Maven 3.8.6
SpringBoot 3.2.3
Visual Studio 2022 v17.9.2
二、创建项目
创建 Springboot 项目,添加 GraalVM Native Support 依赖
写一个测试接口,方便测试能否成功调用
先试运行,确认能正常运行后准备使用 GraalVM native image 工具进行编译
三、编译
打开 x64 Native Tools Command Prompt for VS 2022 工具(以下简称“工具”)
在工具中定位到项目文件夹
输入命令开始编译:
mvn clean native:compile -Pnative -DskipTests
此时可能会报错
Execution of D:\path\Java\graalvm-jdk-21\bin\native-image.cmd @target\tmp\native-image-6834128070081939723.args returned non-zero result
出现这个错误需要打开
项目文件夹\target\tmp\native-image-6834128070081939723.args
在这个文件中将
\\
全局替换为/
,并保存回到工具中,输入报错的命令
native-image @target\tmp\native-image-6834128070081939723.args
,并回车执行
耐心等待编译成功,成功后运行 EXE 文件,并调用接口测试是否成功
遇到的坑
使用 GraalVM JDK 21 时,必须使用 Visual Studio 2022 v17.1.0 以上版本,否则在执行
native-image
命令时会有提示在 IDEA 中使用 native-maven-plugin 插件执行 native:compile 指令,也会出现上面第4步出现的错误。
此时修改了 args 文件后不可在 IDEA 的终端窗口中直接执行
native-image
命令,否则会有提示:执行
native-image
时可能出现如下错误:Native-image building on Windows currently only supports target architecture: AMD64 (?? unsupported)
需要在 Visual Studio Installer 中勾选英语语言包并去掉中文语言包