Comparison of Java virtual machines
Appearance
This article needs to be updated. (March 2019) |
Version information
[edit]| Name | Creator | First public release | Latest stable version | Latest release date | Cost, availability | License |
|---|---|---|---|---|---|---|
| Eclipse OpenJ9 (formerly IBM J9) | IBM | 15 Mar 2018[1] | 0.54.0 |
12 August 2025 | 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"[2] |
| GraalVM | Oracle | May 2019 | Oracle GraalVM for JDK 24 |
18 March 2025 | 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[3] |
| HotSpot, Zero port | Gary Benson[4] | ? | ? | ? | Free | GPL version 2 only |
| IKVM | Jeroen Frijters | 28 June 2004 | 8.14.0 |
1 October 2025 | Free | zlib License[5] |
| JAmiga | Peter Werno, Joakim Nordström | 19 May 2005[6] | 1.2 | 6 January 2014 | Free | GPL version 2 or later |
| JamVM | Robert Lougher | 13 March 2003 | 2.0.0 | 30 July 2014 | Free | GPL version 2 or later |
| Jato VM | Pekka Enberg and contributors[7] | ? | 0.3[8] | 4 January 2012[8] | Free | GPL version 2 only[7] |
| JC virtual machine | Archie L. Cobbs | ? | 1.4.7 | 13 November 2005 | Free | LGPL version 2.1 or later |
| Jikes RVM | IBM | 14 October 2001 | 3.1.4[9] | 18 February 2016[9] | Free | Eclipse Public License version 1.0[10] |
| Kaffe | Transvirtual Technologies | 1996 | 1.1.9 | 22 February 2008 | Free | GPL version 2 or later[11] |
| Mysaifu JVM | ? | 16 April 2005[12] | 0.4.8[12] | 5 March 2010[12] | Free | GPL version 2 only[12] |
| SableVM | Sable Research Group | ? | 1.13 | 30 March 2007[13] | Free | LGPL version 2.1 or later |
Technical information
[edit]| 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[14] | ? | 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[15] | ? | ? | Depends on .NET runtime | ||||
| JAmiga | 1.4[16] | Yes[17] | No | Yes[18] | No | No | ||
| JamVM | 1.8[19] | Yes[20] | Yes[20] | Yes[20] | No | Yes[20] | ||
| Jato VM | 1.6[21] | Yes[8] | No[22] | No[22] | No[22] | Yes[8] | ||
| JC virtual machine | Translates Java to C and compiles it with a C compiler. | 1.4[23] | Yes[24] | No | Yes[25] | Yes[25] | Yes[25] | |
| Jikes RVM | 1.6[26] | Yes[27] | Port[28][29] | Apache Harmony[27] | No[30] | ? | Yes | |
| Kaffe | 1.4[11] | Yes[11] | No | Yes[11] | No[11] | Yes[11] | ||
| Mysaifu JVM | ? | Yes[31] | No | Yes[32] | No[32] | No[32] | ||
| SableVM | Unmaintained | 1.4 | Yes | No | Yes | No | No | |
Supported CPU architectures
[edit]| JVM | x86 | x86-64 | SPARC | MIPS | Itanium | Power ISA | ARM | Alpha | S/390 | z/Architecture | m68k |
|---|---|---|---|---|---|---|---|---|---|---|---|
| GCJ | Yes[33] | Yes[33] | Yes[33] | Yes[33] | Yes[33] | Yes[33] | Yes[33] | Yes[33] | Yes[33] | No[33] | No[33] |
| HotSpot, OpenJDK edition | Yes[34] | Yes[34] | Solaris only[34] | Port[35][36] | No[34] | PowerPC/AIX port[37] | Yes[34] | No[34] | No[34] | No[34] | No[34] |
| HotSpot, Oracle JDK edition | Yes[34] | Yes[34] | Solaris only[34] | No[34] | Java 1.6[38] | No[34] | Yes[34] | No[34] | No[34] | No[34] | No[34] |
| HotSpot, Java SE embedded edition | Yes[3] | Yes[3] | Yes[3] | ? | ? | Yes[3] | Yes[3] | ? | ? | ? | ? |
| HotSpot, Zero port | Yes[39] | Yes[39] | No[39] | Yes[39] | Yes[39] | Yes[39] | Yes[39] | Yes[39] | No[39] | Yes[39] | No[39] |
| IKVM | Depends on .NET runtime | ||||||||||
| JAmiga | ? | ? | No | No | No | Yes | No | No | No | No | Yes |
| JamVM | Yes[20] | Yes[20] | Yes[20] | Yes[20] | No[20] | Yes[20] | Yes[20] | No[20] | No[20] | No[20] | No[20] |
| Jato VM | Yes[8] | Under development[40] | No | No | No | Under development[40] | Preliminary ARMv5 support[22] | No | No | No | No |
| JC virtual machine | Yes | No | No | No | No | No | No | No | No | No | No |
| Jikes RVM | Yes[41] | No[41] | No[41] | No[41] | No[41] | Yes[41] | No[41] | No[41] | No[41] | No[41] | No[41] |
| Kaffe | Yes[11] | Yes[11] | Yes[11] | Yes[11] | Yes[11] | Yes[11] | Yes[11] | Yes[11] | Yes[11] | No[11] | Yes[11] |
| Mysaifu JVM | No[42] | No[42] | No[42] | No[42] | No[42] | No[42] | Yes[42] | No[42] | No[42] | No[42] | No[42] |
| SableVM | Yes[43] | Yes | Yes[43] | Yes | Yes[43] | Yes[43] | Yes[43] | Yes[43] | Yes[43] | No[43] | Yes[43] |
Supported operating systems
[edit]| JVM | Windows | Linux | FreeBSD | NetBSD | OpenBSD | Solaris | OpenSolaris | Darwin | macOS | AIX | IRIX | Other |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| GCJ | Yes[33] | Yes[33] | Yes[33] | ? | ? | Yes[33] | ? | Yes[33] | Yes[33] | ? | Yes[33] | DEC OSF 4.0f and 5.1, Hitachi SH-3/4 micro-controller[33] |
| HotSpot, OpenJDK edition | Yes[44] (distributed as source code) | Yes | Port[45] | Port[45] | Port[45] | Yes | Yes[46] | ? | Yes[47] | Port[37] | No | OS/2port,[48] Haiku port[49] |
| HotSpot, Oracle JDK edition | Yes[34] | Yes[34] | No | No | No | Yes[34] | ? | ? | Yes[34] | No | No | |
| HotSpot, Java SE embedded edition | Yes[3] | Yes[3] | No[3] | No[3] | No[3] | Yes[3] | ?[3] | No[3] | No[3] | No[3] | No[3] | |
| HotSpot, Zero port | No[39][50] | Yes[39][50] | No[39][50] | No[39][50] | No[39][50] | No[39][50] | No[39][50] | No[39][50] | No[39][50] | No[39][50] | No[39][50] | |
| IKVM | Depends on .NET runtime | |||||||||||
| JAmiga | No | No | No | No | No | No | No | No | No | No | No | AmigaOS |
| JamVM | No[20] | Yes[20] | Yes[20] | No[20] | Yes[20] | Yes[20] | Yes[20] | Yes[20] | Yes[20] | No[20] | No[20] | Jailbroken iPhone,[19] kFreeBSD |
| Jato VM | No[40] | Yes[40] | No[40] | No[40] | No[40] | No[40] | No[40] | Under development[40] | ?[40] | No[40] | No[40] | |
| JC virtual machine | No | Yes | Yes | No | No | No | No | No | No | No | No | |
| Jikes RVM | No[41] | Yes[41] | No[41] | No[41] | No[41] | No[41] | No[41] | No[41] | Yes[41] | Yes[41] | No[41] | |
| Kaffe | Using Cygwin[11] | Yes[11] | Yes[11] | Yes[11] | Yes[11] | Yes[11] | ? | Yes[11] | Yes[11] | Yes[11] | Yes[11] | AmigaOS, BeOS, several others[11] |
| Mysaifu JVM | No[42] | No[42] | No[42] | No[42] | No[42] | No[42] | No[42] | No[42] | No[42] | No[42] | No[42] | Windows Mobile |
| SableVM | Using Cygwin[43] | Yes[43] | Yes[43] | ? | ? | ? | ? | ? | Yes[43] | ? | ? | |
References
[edit]- ^ "Release Eclipse OpenJ9 v0.8.0 · eclipse-openj9/openj9". Github. Retrieved 4 June 2023.
- ^ "The GCJ FAQ - GNU Project - Free Software Foundation (FSF)". Gcc.gnu.org. Retrieved 31 July 2012.
- ^ a b c d e f g h i j k l m n o p q "Oracle Java SE Embedded Overview". Oracle. 19 April 2018. Retrieved 2 April 2024.
- ^ "gbenson.net". gbenson.net. Retrieved 31 July 2012.
- ^ "LICENSE.md". ikvmnet/ikvm. Retrieved 22 March 2025 – via GitHub.
- ^ "JAmiga - Browse /jamiga/pre-alpha 0.0.5 at Sourceforge.net". Retrieved 11 August 2012.
- ^ a b "jato/README at master · penberg/jato · GitHub". GitHub. 29 November 2012. Retrieved 4 August 2012. [permanent dead link]
- ^ a b c d e "Jato". Archived from the original on 11 August 2012. Retrieved 4 August 2012.
- ^ a b "Release 3.1.4 · JikesRVM/JikesRVM". GitHub. 18 February 2016. Retrieved 17 July 2025.
- ^ "License". Jikes RVM. Retrieved 31 July 2012.
- ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab "kaffe/kaffe". GitHub. 9 November 2021.
- ^ a b c d "Mysaifu JVM". Archived from the original on 19 December 2012. Retrieved 10 August 2012.
- ^ "SableVM - Browse /sablevm/1.13 at". Sourceforge.net. 30 March 2007. Retrieved 31 July 2012.
- ^ "GCC 7 Release Series — Changes, New Features, and Fixes - GNU Project - Free Software Foundation (FSF)". gcc.gnu.org.
- ^ "README.md". ikvmnet/ikvm. 14 July 2025. Retrieved 17 July 2025 – via GitHub.
- ^ "JAmiga". SourceForge. 7 August 2015. Retrieved 17 July 2025.
- ^ "ClasspathDevelopment - jamiga2 - This document describes the work done and needed for the GNU Classpath - Java for Amiga - Google Project Hosting". Archived from the original on 17 March 2015. Retrieved 11 August 2012.
- ^ "interpreter.c - jamiga 2 - Java for Amiga - Google Project Hosting". Archived from the original on 17 March 2015. Retrieved 11 August 2012.
- ^ a b "JamVM | Release notes for JamVM at SourceForge.net". sourceforge.net. 30 July 2014. Retrieved 24 October 2014.
- ^ a b c d e f g h i j k l m n o p q r s t u v w x y z "JamVM -- A compact Java Virtual Machine". jamvm.sourceforge.net.
- ^ "jato/include/vm/java-version.h at master · penberg/jato · GitHub". GitHub. Retrieved 4 August 2012.
- ^ a b c d "jato/TODO at master · penberg/jato · GitHub". GitHub. Retrieved 4 August 2012.
- ^ "SourceForge.net Repository - [jcvm] Contents of /jcvm/libjc/properties.c". Jcvm.cvs.sourceforge.net. 15 May 2005. Retrieved 31 July 2012.
- ^ "JC Virtual Machine: Home". Jcvm.sourceforge.net. Archived from the original on 15 April 2012. Retrieved 31 July 2012.
- ^ a b c "JC Virtual Machine Documentation". Jcvm.sourceforge.net. Retrieved 31 July 2012.
- ^ "JikesRVM/libraryInterface/Common/src/org/jikesrvm/classlibrary/JavaLangSupport.java at master · JikesRVM/JikesRVM". GitHub. Retrieved 17 July 2025.
- ^ a b "SourceForge: jikesrvm/jikesrvm: files". Jikesrvm.hg.sourceforge.net. 19 July 2012. Retrieved 31 July 2012.
- ^ "openjdk4jikesrvm - Use Openjdk library as JikesRVM's class library - Google Project Hosting". Retrieved 31 July 2012.
- ^ "[#RVM-549] Initial support for OpenJDK class library - jira.codehaus.org". Archived from the original on 3 June 2013. Retrieved 22 July 2012.
- ^ "Feature request for interpreter". Archived from the original on 4 May 2015. Retrieved 12 November 2012.
- ^ "SVN - Mysaifu JVM". 13 November 2008. Retrieved 10 August 2012.
- ^ a b c "Diary of Mysaifu JVM". 9 February 2010. Archived from the original on 12 June 2012. Retrieved 10 August 2012.
- ^ a b c d e f g h i j k l m n o p q r s "GCJ - Status - GNU Project - Free Software Foundation (FSF)". Archived from the original on 17 April 2016. Retrieved 25 July 2016.
- ^ a b c d e f g h i j k l m n o p q r s t u v w "Oracle JDK 7 and JRE 7 Certified System Configurations". www.oracle.com.
- ^ "OpenJDK: Port: Mips". openjdk.java.net.
- ^ "MIPSPort - IcedTea". icedtea.classpath.org. Archived from the original on 1 February 2020. Retrieved 1 February 2020.
- ^ a b "OpenJDK: PowerPC/AIX Port Project". openjdk.java.net.
- ^ "Java SE 6 Update Release Notes". Oracle. 4 March 2019. Retrieved 2 April 2024.
- ^ a b c d e f g h i j k l m n o p q r s t u v "ZeroSharkFaq - IcedTea". icedtea.classpath.org. Archived from the original on 9 May 2020. Retrieved 1 February 2020.
- ^ a b c d e f g h i j k l m "[ANNOUNCE] Jato 0.3 - Google Groups". 4 January 2012. Retrieved 4 August 2012.
- ^ a b c d e f g h i j k l m n o p q r s t u v "Supported Platforms". www.jikesrvm.org.
- ^ a b c d e f g h i j k l m n o p q r s t u v "SVN - Mysaifu JVM". 9 October 2009. Retrieved 10 August 2012.
- ^ a b c d e f g h i j k l m "SableVM Project". sablevm.org.
- ^ "OpenJDK Build README". Archived from the original on 6 July 2012. Retrieved 24 July 2012.
- ^ a b c "OpenJDK: BSD Port Project". openjdk.java.net.
- ^ "OpenJDK Build README". Archived from the original on 6 July 2012. Retrieved 24 July 2012.
- ^ "OpenJDK: Mac OS X Port Project". openjdk.java.net.
- ^ "Java port for OS/2 and OS/2-based systems". trac.netlabs.org. Archived from the original on 17 July 2025. Retrieved 17 July 2025.
- ^ "OpenJDK: Port: Haiku". openjdk.java.net.
- ^ a b c d e f g h i j k "OpenJDK: Zero-Assembler Project". openjdk.java.net.