当前位置: 首页 > 工具软件 > Web Image > 使用案例 >

GraalVM最佳实践,使用Java开发CLI、Desktop(JavaFX)、Web(SpringBoot)项目,并使用native-image技术把Java代码静态编译为独立可执行文件(本机映像)

贺玉石
2023-12-01

原创文章,转载请注明出处!

源码地址:

介绍

GraalVM最佳实践,使用Java开发CLI、Desktop(JavaFX)、Web(SpringBoot)项目,并使用native-image技术把Java代码静态编译为独立可执行文件(本机映像)。

GraalVM让Java再次变得强大,使用native-image把程序编译为目标平台的可执行文件,脱离jvm直接运行,启动速度飞快,内存负载也很低。

模块概览

体验我已经编译好的可执行文件(Windows、Linux、Mac),点此下载

下面的性能测试结果是在我本机Windows上测试的,测试结果与机器配置有关,尤其是 native-image 编译耗时。

↓标签 \ 模块→cli-normaldesktop-javafxweb-springboot
模块描述命令行应用(无框架)桌面应用(JavaFx)Web应用(SpringBoot)
JDK8 or 11+11+8 or 11+
GraalVMCE-21.0.0.2+CE-21.0.0.2+CE-21.0.0.2+
Maven Pluginnative-image-maven-pluginclient-maven-pluginnative-image-maven-plugin
启动耗时(jvm)0.713s2.555s1.793s
启动耗时(native-image)0.047s0.665s0.216s
内存负载(jvm)38.8m309.3m440.5m
内存负载(native-image)3.1m60.4m70.2m
编译耗时(native-image)24.786s93.455s99.434s
可执行文件大小(7z压缩)8.03m (7z : 1.68m)62.7m (7z : 13.1m)66.5m (7z : 13.9m)

开发环境

以下是我本机的开发环境,理论上windows、linux、mac都是支持的(注意不同平台的 GraalVM SDK 和 native-image的依赖是不一样的)。

  • Windows 10 (CPU: i7-7700, RAM: 16G)
  • IntelliJ IDEA 2020
  • jdk-11.0.10 其实也可以不用,因为GraalVM是自带OpenJDK的
  • graalvm-ce-java11-21.0.0.2
  • Visual Sutdio 2019

环境配置(Windows,Linux,Mac)

详细的开发环境配置等教程可访问我的项目地址:

 类似资料: