GraalVM是甲骨文(Oracle)开发的支持多语言,采用一个单一的虚拟机来对不同语言提供支持的高性能运行时。

GraalVM 底层是基于 OpenJDK 的 Java HotSpot 虚拟机,基于 JVM 编译器接口(JVM Compiler Interface)实现的即时(just-in-time,JIT)编译器,用来把 Java 字节代码转换成本地机器代码。

对于Java 和其他 JVM 语言(如 Groovy、Kotlin 和 Scala 等)的源代码在编译成 Java 字节代码之后,可以直接运行在 GraalVM 的 Java 虚拟机之上。

对于其他非Java 系的的语言,比如JavaScript、Ruby、Python、R、Rust和 C/C++等语言,GraalVM 中的Truffle 框架提供了对这些语言的支持,Truffle 框架是一个开放的语言实现框架。其他语言都可以通过 Truffle 框架运行在 GraalVM 上,甚至是应用本身私有的语言。

Graalvm的native-image 可将应用程序提前编译为在系统上本机运行的二进制文件,目前对java 的支持最为友好,支持Java 8 和 Java 11。

GraalVM 提供了命令行工具gu用来管理可选组件,可通过gu命令行工具来下载、删除GraalVM提供组件,比如,刚下载的GraalVM是没有Ruby 语言解释器的,便可通过如下命令安装:

gu install ruby

在组件安装之后,会在bin目录添加语言相关的命令行工具。 还有其他一些常用的命令:

gu available列出所有可用的组件

gu install安装对应组件,如gu install ruby:安装 Ruby 语言解释器

gu list列出当前已安装组件

gu remove删除已安装的组件,如gu remove ruby:来删除 Ruby 语言解释器

目前GraalVM 最新版是20.0.0,提供了社区版和企业版,对Java 8 和 Java 11 提供了支持;社区版可通过Github免费下载,企业版则针对企业用户付费使用。其对于linux和mac os x的支持较为成熟,对windows的支持也日渐完善,如有感兴趣的小伙伴可以下载下来尝试一番。
展开
老夫不正经于2020-04-15 00:06发布的图片
老夫不正经于2020-04-15 00:06发布的图片
评论