日前GraalVM宣布发布新版本22.3,该版本带来了JDK19构建、jlink支持、新的监控功能、新的NativeImageAPI。另外GraalVMJIT和NativeImage将被打包到OpenJDK中,做为他的一部分。这样将获得和OpenJDK社区相同的方法论和方法:包括拥有Committer和Reviewer角色以及JEP。今天我们一起来学习该发布的新功能。
GraalVMJDK19构建
GraalVM22.3已经发布JDK11、17和19版本,但计划在GraalVM23.0中停止对JDK11的支持。GraalVMJDK11版本将在年整个22.3.X中继续更新,因此,目前还可以继续使用GraalVMJDK11,但建议您迁移到JDK17+以访问Java预览功能。
并且有充分的理由进行迁移——例如,GraalVMJDK19包括所有GraalVM组件,例如编译器、NativeImage和GraalVM语言,以及对最新Java功能,比如下图显示使用GameoflifeNative演示在GraalVM上运行虚拟线程(确保使用--enable-preview构建文件或命令行中的选项)。
目前GraalVMJDK19还是是实验性的,其正式支持将在GraalVM23.0中。此外,启用运行时编译时,GraalVM语言尚不支持虚拟线程。
Web服务器原生镜像
从Java18开始,可以使用jwebserver工具,用于原型设计、测试和调试的最小HTTP服务器。在GraalVMJDK19中,只需编译jwebserver进入本机应用程序。然后运行以下命令:
$JAVA_HOME/bin/native-image-mjdk.