Encyclopedia
Comparison of Java virtual machines
01Version information
| Name | Creator | First public release | Latest stable version | Latest release date | Cost, availability | License |
|---|---|---|---|---|---|---|
| Eclipse OpenJ9 (formerly IBM J9) | IBM | 15 Mar 2018 | 0.62.0 | 15 September 2026 (15 September 2026) | Free | Eclipse Public License 2.0 Apache License 2.0 |
| GCJ | GNU | 6 September 1998 | 6.4 (Terminal) | 4 July 2017 | Free | GPL version 2 or later, with the "libgcc exception" |
| GraalVM | Oracle | May 2019 | 25.1.3 | 30 June 2026 (30 June 2026) | Free | GPL version 2 only |
| HotSpot, OpenJDK edition | Sun Microsystems, Oracle | 27 April 1999 | jdk-16 | 16 March 2021 | Free | GPL version 2 only |
| HotSpot, Oracle JDK edition | Sun Microsystems, Oracle | 27 April 1999 | jdk 16 | 16 March 2021 | Free | Proprietary |
| HotSpot, Java SE embedded edition | Sun Microsystems, Oracle | 27 April 1999 | ? | ? | Commercial | Proprietary |
| HotSpot, Zero port | Gary Benson | ? | ? | ? | Free | GPL version 2 only |
| IKVM | Jeroen Frijters | 28 June 2004 | 8.16.1 | 15 September 2026 (15 September 2026) | Free | zlib License |
| JamVM | Robert Lougher | 13 March 2003 | 2.0.0 | 30 July 2014 | Free | GPL version 2 or later |
| Jikes RVM | IBM | 14 October 2001 | 3.1.4 | 18 February 2016 | Free | Eclipse Public License version 1.0 |
| Kaffe | Transvirtual Technologies | 1996 | 1.1.9 | 22 February 2008 | Free | GPL version 2 or later |
| SableVM | Sable Research Group | ? | 1.13 | 30 March 2007 | Free | LGPL version 2.1 or later |
02Technical information
| JVM | Status | Latest supported Java version | Supported class libraries | Performance | ||||
|---|---|---|---|---|---|---|---|---|
| GNU Classpath | OpenJDK | Other | Interpretation | AOT | JIT | |||
| GCJ | No longer maintained or distributed by GNU as of GCC 7 | ? | Yes | No | Yes | Yes | No | |
| HotSpot, OpenJDK edition | Reference implementation. | 1.8 | No | Yes | Yes | No | Yes | |
| HotSpot, Oracle JDK edition | Reference implementation. | 1.8 | No | Yes | Yes | No | Yes | |
| HotSpot, Java SE embedded edition | ? | No | Yes | Yes | No | Yes | ||
| HotSpot, Zero port | Interpreter-only port of OpenJDK using almost no assembly language and designed to be very portable. | 1.7 | No | Yes | Yes | No | No | |
| IKVM | 1.8 | ? | ? | Depends on .NET runtime | ||||
| JamVM | 1.8 | Yes | Yes | Yes | No | Yes | ||
| Jikes RVM | 1.6 | Yes | Port | Apache Harmony | No | ? | Yes | |
| Kaffe | 1.4 | Yes | No | Yes | No | Yes | ||
| SableVM | Unmaintained | 1.4 | Yes | No | Yes | No | No | |
03Supported CPU architectures
| JVM | x86 | x86-64 | SPARC | MIPS | Itanium | Power ISA | ARM | Alpha | S/390 | z/Architecture | m68k |
|---|---|---|---|---|---|---|---|---|---|---|---|
| GCJ | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| HotSpot, OpenJDK edition | Yes | Yes | Solaris only | Port | No | PowerPC/AIX port | Yes | No | No | No | No |
| HotSpot, Oracle JDK edition | Yes | Yes | Solaris only | No | Java 1.6 | No | Yes | No | No | No | No |
| HotSpot, Java SE embedded edition | Yes | Yes | Yes | ? | ? | Yes | Yes | ? | ? | ? | ? |
| HotSpot, Zero port | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No | Yes | No |
| IKVM | Depends on .NET runtime | ||||||||||
| JamVM | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No | No | No |
| Jikes RVM | Yes | No | No | No | No | Yes | No | No | No | No | No |
| Kaffe | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes |
| SableVM | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes |
04Supported operating systems
| JVM | Windows | Linux | FreeBSD | NetBSD | OpenBSD | Solaris | OpenSolaris | Darwin | macOS | AIX | IRIX | Other |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| GCJ | Yes | Yes | Yes | ? | ? | Yes | ? | Yes | Yes | ? | Yes | DEC OSF 4.0f and 5.1, Hitachi SH-3/4 micro-controller |
| HotSpot, OpenJDK edition | Yes (distributed as source code) | Yes | Port | Port | Port | Yes | Yes | ? | Yes | Port | No | OS/2port, Haiku port |
| HotSpot, Oracle JDK edition | Yes | Yes | No | No | No | Yes | ? | ? | Yes | No | No | |
| HotSpot, Java SE embedded edition | Yes | Yes | No | No | No | Yes | ? | No | No | No | No | |
| HotSpot, Zero port | No | Yes | No | No | No | No | No | No | No | No | No | |
| IKVM | Depends on .NET runtime | |||||||||||
| JamVM | No | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No | No | Jailbroken iPhone, kFreeBSD |
| Jikes RVM | No | Yes | No | No | No | No | No | No | Yes | Yes | No | |
| Kaffe | Using Cygwin | Yes | Yes | Yes | Yes | Yes | ? | Yes | Yes | Yes | Yes | AmigaOS, BeOS, several others |
| SableVM | Using Cygwin | Yes | Yes | ? | ? | ? | ? | ? | Yes | ? | ? | |
Sources and credits
This article is adapted from the Wikipedia article “Comparison of Java virtual machines”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.