早听说过GraalVM的大名,但是一直没有用到它的机会。最近在尝试Quarkus,顺道试试了,NICE!!
用到的场景有 把Java项目编译成本地可执行文件,就不需要再依赖JVM了!
# 安装
社区版免费。商业版收费。
> 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