AOT (Ahead-of-Time) 提前编译在程序执行前全部编译成机器码。JIT Just in Time及时编译程序边编译边执行。GraalVM相当于平替JDK官网https://www.graalvm.org/GraalVM是一个高性能的JDK旨在加速用Java和其他JVM语言编写的应用程序的执行同时还提供JavaScript,Python和许多其他流行语言的运行时。GraalVM提供了两种运行Java应用程序的方式:·1.在HotSpotJVM上使用Graal即时(IT)编译器·2.作为预先编译的本机可执行文件运行。GraalVM的多语言能力使得在单个应用程序中混合多种编程语言成为可能同时消除了外部语言调用的成本。跨平台原生镜像原理图1.如果是在window平台进行编译需要先安装VisualStudio中的c环境。2.安装GraalVM进入官网下载3.下载完成后按照配置JDK的方法修改环境变量替换JDK为GraalVM 的JDK。4.然后在安装native-image依赖可以使用命令下载gu install native-image如果下载好了离线安装包使用命令gu install --file native-image-Installable-svm-java17-windows-amd64-22.3.2.jar5.在项目中先把项目打包成jar包6.安装好native-image依赖 工具后在windows开始菜单中找到VisualStudio 中的Native工具6.打开x64 Native Tools Command Prompt for VS工具使用打包命令进行打包打包时候需要先CD到jar所在目录#从入口开始编译整个jar native-image -cp demo5-0.0.1-SNAPSHOT.jar com.haha.demo5.Demo5Application -o HelloDemo命令解释片段含义native-imageGraalVM 提供的可执行程序AOT 提前编译器把 Java 字节码编译成本地机器码-cp demo5-0.0.1-SNAPSHOT.jar-cp‑classpath类路径告诉编译器去哪里找 class 字节码。这里指定我们自己项目的 jar 包com.haha.demo5.Demo5Application主类全限定名包含main()入口方法就是 SpringBoot 项目启动类-o HelloDemo-o output指定输出原生程序的文件名输出文件叫HelloDemo等价完整写法native-image --classpath demo5-0.0.1-SNAPSHOT.jar com.haha.demo5.Demo5Application --output HelloDemo7.运行命令后再目录下会生成一个HelloDemo.exe 可执行文件。SpringBoot-Aot1.创建springboot项目时候需要导入Native插件包2.当我导入了Native插件依赖包时候Maven对应项目中插件下会有native,下面还有build构建。如果环境变量配置正确可以直接双击build构建本地镜像Aot.3.如果是windows环境需要先安装VisualStudio 在配置VisualStudio有些特殊目录的环境变。配置环境变量目录1C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include目录2C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt 通用 C 运行时标准 C 语言库头文件目录3C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um 用户模式头文件Win32 桌面 API普通 EXE 程序调用的 Windows 系统接口目录4C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\winrt 旧版 C/CX 语法的 WinRT 头文件UWP 老项目使用现在微软推荐用cppwinrt目录5C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared 共享头文件用户态、内核态都要用的公共定义目录6D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64目录7C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\x64目录8C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x644.修改IDEA中默认终端把powershell选为cmd5.自动打包springboot找到maven下插件native下面的build6.手动打包首先找到maven--插件---》springboot---spring-boot:process-aot 双击预先处理处理反射等类。或x64 Native Tools Command Prompt for VS工具中输入命令mvn springboot:process-aot6.1打开x64 Native Tools Command Prompt for VS工具运行命令mvn -Pnative native:build -f pom.xml