GraalVM介绍
GraalVM 是一款由 Oracle 开发的高性能的虚拟机,能够支持多种编程语言(包括 Java、JavaScript、Ruby、Python、R 和 C++等),同时也能够运行基于 LLVM 的原生代码。GraalVM 允许将不同语言的代码混合在一起,并在一个共享的运行时环境中同时运行,从而实现更高效的集成和协同工作。
GraalVM 最重要的特点是其高性能。由于其采用了即时编译技术(JIT),并且能够对多种语言进行优化,因此能够比传统的虚拟机实现更快的执行速度。此外,GraalVM 还提供了 Ahead-of-Time(AOT)编译器,可以将程序预先编译为本地代码,进一步提高程序的性能和启动速度。
除此之外,GraalVM 还提供了许多有用的工具和功能,例如支持多线程的垃圾回收器、低延迟的实时编译器、本地图形界面(GUI)工具、内存管理和诊断工具等,使其成为一款非常强大和灵活的开发工具。
安装
官网介绍如下:
window、mac、linux都可以下载安装,详情可查官网文档链接,sdk下载完成后配置环境变量,出现如下截图说明安装成功
Native Image介绍
Native Image是GraalVM的一项功能,它可以将Java应用程序编译成本地可执行文件,从而提高应用程序的启动和执行速度。使用Native Image可以避免JIT编译和动态类加载等Java应用程序启动时的开销,同时还可以将应用程序的内存占用和二进制文件大小减小到最小。Native Image支持在Linux、macOS和Windows等平台上生成本地可执行文件,还支持生成包含嵌入式JavaScript引擎的本地可执行文件。然而,由于编译过程需要访问整个应用程序的代码路径和运行时信息,因此生成本地可执行文件可能需要进行一些配置和调试工作。
通过
安装Native Image
GraalVM 默认情况下不会安装 Native Image 组件,因此您需要手动安装它。您可以使用以下命令安装 Native Image 组件:
gu install native-image
这将下载并安装 Native Image 组件。
安装完成后,您可以使用以下命令验证是否成功安装了 Native Image:
native-image --version
window准备Visual Studio
安装GraalVM需要的的核心库如下图所示:
注意安装语言包的时候安装英语否则打包的时候会报错
安装完成后会出现X64的cmd命令窗口,接下来的打包都是基于x64的cmd命令窗口完成
打包
准备spring3.0的项目,选择native-maven-plugin
<build>
<plugins>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
通过x64cmd命令窗口执行如下命令
mvn -Pnative native:compile
打包完成后会出现exe的启动包,打包过程有点慢需要等待
注意需要配置JAVA_HOME到指定的GraalVM的sdk否则会打包错误 ‘gu.cmd’ tool wasn’t found. This probably means that JDK at isn’t a GraalVM distribution的错误