Hello, GraalVM

2023-05-30

早听说过GraalVM的大名,但是一直没有用到它的机会。最近在尝试Quarkus,顺道试试了,NICE!!

用到的场景有 把Java项目编译成本地可执行文件,就不需要再依赖JVM了!

# 安装

https://www.graalvm.org/

社区版免费。商业版收费。

> ls ~/devApps/graalvm-ce-java17-22.3.2
> bin  conf  GRAALVM-README.md  include  jmods  languages  legal  lib  LICENSE_NATIVEIMAGE.txt  LICENSE.txt  release  THIRD_PARTY_LICENSE.txt  tools

> cd ~/devApps/graalvm-ce-java17-22.3.2 && ls bin
> gu   jarsigner  javac    javap  jconsole  jdeprscan  jfr    jimage  jlink  jmod      jps         jshell  jstat   keytool       native-image-configure  rebuild-images  serialver
jar  java       javadoc  jcmd   jdb       jdeps      jhsdb  jinfo   jmap   jpackage  jrunscript  jstack  jstatd  native-image  polyglot                rmiregistry

# gu

和普通openjdk一样,graalvm也提供了javac、java等工具。但是有一个额外的gu(GraalVM Component Updater v2.0.0)

> gu help

> gu list 

> gu install native-image
//下载native-image工具,用来将java项目编译成可执行文件

 

# java项目编译成可执行文件

https://www.graalvm.org/latest/native-image/guides/

 

## 编译普通.java文件

先javac编译
再native-image 编译

## 编译maven项目

https://graalvm.github.io/native-build-tools/latest/maven-plugin.html

## 编译spring boot

spring-boot-starter-parent已经配置了native profile,直接调用就行了

> mvn -Pnative native:compile