Lazy loaded image使用GraalVM打包原生应用

使用GraalVM打包原生应用
type
status
date
slug
summary
tags
category
icon
password
GraalVM 是一个由 Oracle 开发的 多语言运行时(runtime),它最大的亮点是:
💥 让 Java 和其他语言(像 JS、Python、Ruby、LLVM 等)都能高效运行、互操作,甚至打包成原生可执行文件(.exe/.out)!
简化来说,它是一种更「万能」的 Java 运行环境,但远不止于 Java。
graalvm可以将java项目打包为二进制文件,类似于 go build 那种。这是通过 native-iamge 工具实现的。
下面介绍具体操作方法:

准备环境

需要准备两点:
  • windows下需要准备c++构建工具
  • 下载graalvm

C++构建工具

  1. 下载 vs installer
  1. 选择单个组件:
      • C++ 生成工具
      • MSVC 生成工具
      • Windows 11 SDK

下载graalvm

下载完graalvm后,实际上它自带一个jdk。此时我们将环境变量中的JAVA_HOME修改为graalvm的安装目录。
然后再配置一个GRAALVM_HOME, 值也是graalvm的安装目录。
notion image
然后在path里将graalvm安装目录下的bin目录配置进去,注意要放在其他jdk配置之前,防止jdk版本被覆盖。
notion image

SpringBoot项目配置

  1. 添加 native-maven-plugin 插件

    项目打包

    1. 直接通过idea的maven工具,选择plugins中的 native:compile 命令执行
    notion image
    1. 如果执行失败,可以先复制idea生成的maven命令,然后在 x64 Native Tools Command Prompt for VS 2022 Preview 命令行工具中执行此命令。这个命令行工具在安装指定组件的vs后,就会有。
    1. 成功打包exe文件。
    notion image
    上一篇
    logstash应用
    下一篇
    开发随记
    Loading...