GraalVM介绍GraalVM 是由 Oracle Labs 开发的新一代高性能运行时它不仅能显著提升 Java 应用在 JVM 上的执行效率更能通过其革命性的原生镜像Native Image技术将 Java 应用编译成独立的、平台相关的可执行文件。这使得 Java 应用拥有了毫秒级启动和极低内存占用的能力完美契合云原生、Serverless 和微服务等现代应用场景。通俗的说就是可以把class文件直接编译成可执行文件不依赖JDK执行运行速度快内存占用低。关于国产平台及中间件是否支GraalVM的说明1. 从授权方GraalVM分为社区版和商业版功能项GraalVM CE 社区版GraalVM EE 企业商业版含新版 Oracle GraalVM开源协议GPLv2 with Classpath Exception完整开源闭源专有许可不可二次分发新版商用免费但不开源使用成本个人 / 企业开发、生产永久免费旧版需 Java SE 订阅付费新版 Oracle GraalVM 生产免费无官方售后官方技术支持无 7×24 工单 SLA仅 GitHub 社区付费订阅提供官方故障排障、安全补丁、专项调优支持自定义移植源码公开可自主移植龙芯 LoongArch/RISC-V闭源无源码仅官方 x86/AArch64 预编译包2. 关于支持平台官方仅提供x86/AArch64平台的windows、linux版本龙芯、申威等平台版本不提供。3. 按运行方式(1) GraalVM 运行时 (GraalVM Runtime)这是一个功能完整的 JDK 发行版可以像 OpenJDK 或 Oracle JDK 一样直接运行 .jar 文件。它内置了一个名为 Graal Compiler 的高性能 JIT 编译器可以替换掉 HotSpot 的 C2 编译器为传统 JVM 应用提供潜在的性能提升。(2) 原生镜像 (Native Image)这是 GraalVM 最具颠覆性的特性。它是一个 AOT (Ahead-of-Time) 工具。它能在构建时对您的 Java 应用进行静态分析将应用代码、所有依赖库以及 JDK 运行时中实际用到的部分全部链接并编译成一个独立的二进制可执行文件如 Linux 下的 my-appWindows 下的 my-app.exe。优势启动速度极快毫秒级、内存占用极低、无需安装 JVM 即可运行。限制由于是静态分析Java 中的动态特性如反射、动态代理、JNI需要显式配置才能被识别。通俗的说如果GraalVM当普通JDK使用则传统的Java类程序均可以运行。若是想通过Native Image将Java程序编译成二进制可执行文件举例(1) 下载安装GraalVM(2) 创建简单的Java程序public class HelloWorld { public static void main(String[] args) { System.out.println(Hello, GraalVM Native Image!); } }(3) 通过javac编译为class文件。(4) 通过native-image命令来构建二进制文件#native-image [全局选项] [目标选项(-H:xxx、-R:xxx)] [类路径] 主类名 [-o 输出文件名] native-image HelloWorld构建成功后您会在当前目录下看到一helloworld或helloworld.exe的可执行文件该文件可以脱离JDK来运行。注意以上只是一个简单举例当应用使用了 Spring Boot、Hibernate 等框架时它们大量依赖反射。此时直接构建 Native Image 会失败。解决方案是使用 GraalVM 提供的 Tracing Agent 来自动生成所需的反射配置文件。后期运行过程中的调试也变的麻烦。所以要考虑采用GraalVM要从这几方面来分析1. GraalVM的商业授权。2. GraalVM支持的平台先咨询麒麟、统信操作系统等是否支持GraalVM。3. GraalVM的使用方式一是当传统的JDK来使用TongWeb支持二是通过Native Image生成二进制文件TongWeb企业版目前不能采用这种方式绝大部分应用也很难一次性通过Native Image编译成功后期运维、分析问题也是需要考虑的。
关于GraalVM的说明
发布时间:2026/6/24 5:30:03
GraalVM介绍GraalVM 是由 Oracle Labs 开发的新一代高性能运行时它不仅能显著提升 Java 应用在 JVM 上的执行效率更能通过其革命性的原生镜像Native Image技术将 Java 应用编译成独立的、平台相关的可执行文件。这使得 Java 应用拥有了毫秒级启动和极低内存占用的能力完美契合云原生、Serverless 和微服务等现代应用场景。通俗的说就是可以把class文件直接编译成可执行文件不依赖JDK执行运行速度快内存占用低。关于国产平台及中间件是否支GraalVM的说明1. 从授权方GraalVM分为社区版和商业版功能项GraalVM CE 社区版GraalVM EE 企业商业版含新版 Oracle GraalVM开源协议GPLv2 with Classpath Exception完整开源闭源专有许可不可二次分发新版商用免费但不开源使用成本个人 / 企业开发、生产永久免费旧版需 Java SE 订阅付费新版 Oracle GraalVM 生产免费无官方售后官方技术支持无 7×24 工单 SLA仅 GitHub 社区付费订阅提供官方故障排障、安全补丁、专项调优支持自定义移植源码公开可自主移植龙芯 LoongArch/RISC-V闭源无源码仅官方 x86/AArch64 预编译包2. 关于支持平台官方仅提供x86/AArch64平台的windows、linux版本龙芯、申威等平台版本不提供。3. 按运行方式(1) GraalVM 运行时 (GraalVM Runtime)这是一个功能完整的 JDK 发行版可以像 OpenJDK 或 Oracle JDK 一样直接运行 .jar 文件。它内置了一个名为 Graal Compiler 的高性能 JIT 编译器可以替换掉 HotSpot 的 C2 编译器为传统 JVM 应用提供潜在的性能提升。(2) 原生镜像 (Native Image)这是 GraalVM 最具颠覆性的特性。它是一个 AOT (Ahead-of-Time) 工具。它能在构建时对您的 Java 应用进行静态分析将应用代码、所有依赖库以及 JDK 运行时中实际用到的部分全部链接并编译成一个独立的二进制可执行文件如 Linux 下的 my-appWindows 下的 my-app.exe。优势启动速度极快毫秒级、内存占用极低、无需安装 JVM 即可运行。限制由于是静态分析Java 中的动态特性如反射、动态代理、JNI需要显式配置才能被识别。通俗的说如果GraalVM当普通JDK使用则传统的Java类程序均可以运行。若是想通过Native Image将Java程序编译成二进制可执行文件举例(1) 下载安装GraalVM(2) 创建简单的Java程序public class HelloWorld { public static void main(String[] args) { System.out.println(Hello, GraalVM Native Image!); } }(3) 通过javac编译为class文件。(4) 通过native-image命令来构建二进制文件#native-image [全局选项] [目标选项(-H:xxx、-R:xxx)] [类路径] 主类名 [-o 输出文件名] native-image HelloWorld构建成功后您会在当前目录下看到一helloworld或helloworld.exe的可执行文件该文件可以脱离JDK来运行。注意以上只是一个简单举例当应用使用了 Spring Boot、Hibernate 等框架时它们大量依赖反射。此时直接构建 Native Image 会失败。解决方案是使用 GraalVM 提供的 Tracing Agent 来自动生成所需的反射配置文件。后期运行过程中的调试也变的麻烦。所以要考虑采用GraalVM要从这几方面来分析1. GraalVM的商业授权。2. GraalVM支持的平台先咨询麒麟、统信操作系统等是否支持GraalVM。3. GraalVM的使用方式一是当传统的JDK来使用TongWeb支持二是通过Native Image生成二进制文件TongWeb企业版目前不能采用这种方式绝大部分应用也很难一次性通过Native Image编译成功后期运维、分析问题也是需要考虑的。