什么是 OpenJ9

OpenJ9 简单来说就是 JVM 的其中一个开源版本。

如果你默认安装的是使用 Oracle 的话,那么跑不了会看到一个 HotSpot,这个就是 Oracle 使用的版本。

这个 JVM 版本是从 SUN 系统开始就使用的版本。

Java 在开源的时候因为这个 JVM 版本有些内容是不开源的,所以 JVM 其实并不是开源的,当落入 Oracle 手之后,这个 HotSpot 自然就归了 Oracle。

按照 Oracle 的尿性,这个肯定是需要收费的了。

或者 JVM 不收费,一旦上了 Oracle 的贼船,下来就不那么容易了。

OpenJ9

好在我们现在有了 OpenJ9 了。不管怎么样,我们还是得感谢感谢 IBM。

在 IBM 中的 Java 机器中,是不使用 HotSpot 虚拟机的。

JVM是Java的跨平台性实现的基础,不同平台上标准统一的JVM提供了相同虚拟运行环境,使得Java应用不用做(或很小的)修改在各个JVM上都能运行。

IBM Technology for Java Virtual Machine是IBM自己开发的一款JVM,它支持在当前流行的大部分平台上的安装和使用,这其中就包括IBM i。

除去IBM Technology for Java Virtual Machine,在一些文档中,也许你还读到过这些名称:IBM Virtual Machine for Java, IBM JVM,IBM J9 VM, J9 JVM, 以及IT4J。

而这不同的名称中,J9显得更特别一点。为什么会有J9这个名字呢?这与这款JVM的出身有关,它最早是由IBM Ottawa实验室一个Small Talk的虚拟机扩展来的。

那时候,这个虚拟机有一个bug是因为8k值定义错误引起,工程师们花了很长时间终于发现并解决了这个错误,此后这个版本的虚拟机就被称为K8了。于是,后来出现的支持Java这个版本的虚拟机就被称为J9了。

Eclipse OpenJ9 是 OpenJDK 的替代品吗

不是。Eclipse OpenJ9 是一个 Java 虚拟机(JVM),它是运行 Java 应用程序的引擎,而 OpenJDK 是一个完整的开发工具包,包括JVM、Java 基础类库。默认情况下,OpenJDK 使用名为 Hotspot 的 JVM。简单地说,OpenJ9 是一个 JVM 替代方案,可将其作为 OpenJDK 二进制文件的一部分。

Eclipse OpenJ9 是否与 Hotspot 相同

Hotspot 和 Eclipse OpenJ9 都是可以包含在 OpenJDK 中的 Java 虚拟机,但它们都具有不同的功能。根据所遵循的构建过程,可以构建包含 Eclipse OpenJ9 或 Hotspot 的 OpenJDK 二进制文件。

为什么要使用 Eclipse OpenJ9 而不是默认的 JVM

如果你正为应用程序寻找企业级的运行时环境,建议使用 Eclipse OpenJ9 构建 OpenJDK。这个高性能、可扩展的虚拟机是许多 IBM 企业软件产品的核心,所以它的血统就是为企业应用环境而生的。

另外,你还可以调整 OpenJ9,以进一步改进特定场景下 Java 应用程序的性能。例如,可以切换垃圾回收策略以管理不同类型工作负载的内存。

当 IBM 把 J9 捐给 Eclipse 基金会以后,这个版本就被称为 OpenJ9了。

OpenJ9 是完全开源的,官方地址为:https://www.eclipse.org/openj9/

所有 OpenJ9 的源代码都可以在 GitHub 上找到。