Comparison of Java virtual machines
Appearance
From Wikipedia, the free encyclopedia
This article needs to be updated. Please help update this article to reflect recent events or newly available information. (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.56.0[2] Edit this on Wikidata | 28 October 2025; 16 days ago (28 October 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"[3] |
| GraalVM | Oracle | May 2019 | Oracle GraalVM for JDK 24[4] Edit this on Wikidata | 18 March 2025; 7 months ago (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 [5] |
| HotSpot, Zero port | Gary Benson[6] | ? | ? | ? | Free | GPL version 2 only |
| IKVM | Jeroen Frijters | 28 June 2004 | 8.14.0[7] Edit this on Wikidata | 1 October 2025; 43 days ago (1 October 2025) | Free | zlib License [8] |
| JAmiga | Peter Werno, Joakim Nordström | 19 May 2005[9] | 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[10] | ? | 0.3[11] | 4 January 2012[11] | Free | GPL version 2 only[10] |
| 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[12] | 18 February 2016[12] | Free | Eclipse Public License version 1.0[13] |
| Kaffe | Transvirtual Technologies | 1996 | 1.1.9 | 22 February 2008 | Free | GPL version 2 or later[14] |
| Mysaifu JVM | ? | 16 April 2005[15] | 0.4.8[15] | 5 March 2010[15] | Free | GPL version 2 only[15] |
| SableVM | Sable Research Group | ? | 1.13 | 30 March 2007[16] | 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[17] | ? | 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[18] | ? | ? | Depends on .NET runtime | ||||
| JAmiga | 1.4[19] | Yes[20] | No | Yes[21] | No | No | ||
| JamVM | 1.8[22] | Yes[23] | Yes[23] | Yes[23] | No | Yes[23] | ||
| Jato VM | 1.6[24] | Yes[11] | No[25] | No[25] | No[25] | Yes[11] | ||
| JC virtual machine | Translates Java to C and compiles it with a C compiler. | 1.4[26] | Yes[27] | No | Yes[28] | Yes[28] | Yes[28] | |
| Jikes RVM | 1.6[29] | Yes[30] | Port[31] [32] | Apache Harmony[30] | No[33] | ? | Yes | |
| Kaffe | 1.4[14] | Yes[14] | No | Yes[14] | No[14] | Yes[14] | ||
| Mysaifu JVM | ? | Yes[34] | No | Yes[35] | No[35] | No[35] | ||
| 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[36] | Yes[36] | Yes[36] | Yes[36] | Yes[36] | Yes[36] | Yes[36] | Yes[36] | Yes[36] | No[36] | No[36] |
| HotSpot, OpenJDK edition | Yes[37] | Yes[37] | Solaris only[37] | Port[38] [39] | No[37] | PowerPC/AIX port[40] | Yes[37] | No[37] | No[37] | No[37] | No[37] |
| HotSpot, Oracle JDK edition | Yes[37] | Yes[37] | Solaris only[37] | No[37] | Java 1.6[41] | No[37] | Yes[37] | No[37] | No[37] | No[37] | No[37] |
| HotSpot, Java SE embedded edition | Yes[5] | Yes[5] | Yes[5] | ? | ? | Yes[5] | Yes[5] | ? | ? | ? | ? |
| HotSpot, Zero port | Yes[42] | Yes[42] | No[42] | Yes[42] | Yes[42] | Yes[42] | Yes[42] | Yes[42] | No[42] | Yes[42] | No[42] |
| IKVM | Depends on .NET runtime | ||||||||||
| JAmiga | ? | ? | No | No | No | Yes | No | No | No | No | Yes |
| JamVM | Yes[23] | Yes[23] | Yes[23] | Yes[23] | No[23] | Yes[23] | Yes[23] | No[23] | No[23] | No[23] | No[23] |
| Jato VM | Yes[11] | Under development[43] | No | No | No | Under development[43] | Preliminary ARMv5 support[25] | No | No | No | No |
| JC virtual machine | Yes | No | No | No | No | No | No | No | No | No | No |
| Jikes RVM | Yes[44] | No[44] | No[44] | No[44] | No[44] | Yes[44] | No[44] | No[44] | No[44] | No[44] | No[44] |
| Kaffe | Yes[14] | Yes[14] | Yes[14] | Yes[14] | Yes[14] | Yes[14] | Yes[14] | Yes[14] | Yes[14] | No[14] | Yes[14] |
| Mysaifu JVM | No[45] | No[45] | No[45] | No[45] | No[45] | No[45] | Yes[45] | No[45] | No[45] | No[45] | No[45] |
| SableVM | Yes[46] | Yes | Yes[46] | Yes | Yes[46] | Yes[46] | Yes[46] | Yes[46] | Yes[46] | No[46] | Yes[46] |
Supported operating systems
[edit ]| JVM | Windows | Linux | FreeBSD | NetBSD | OpenBSD | Solaris | OpenSolaris | Darwin | macOS | AIX | IRIX | Other |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| GCJ | Yes[36] | Yes[36] | Yes[36] | ? | ? | Yes[36] | ? | Yes[36] | Yes[36] | ? | Yes[36] | DEC OSF 4.0f and 5.1, Hitachi SH-3/4 micro-controller[36] |
| HotSpot, OpenJDK edition | Yes[47] (distributed as source code) | Yes | Port[48] | Port[48] | Port[48] | Yes | Yes[49] | ? | Yes[50] | Port[40] | No | OS/2port,[51] Haiku port[52] |
| HotSpot, Oracle JDK edition | Yes[37] | Yes[37] | No | No | No | Yes[37] | ? | ? | Yes[37] | No | No | |
| HotSpot, Java SE embedded edition | Yes[5] | Yes[5] | No[5] | No[5] | No[5] | Yes[5] | ?[5] | No[5] | No[5] | No[5] | No[5] | |
| HotSpot, Zero port | No[42] [53] | Yes[42] [53] | No[42] [53] | No[42] [53] | No[42] [53] | No[42] [53] | No[42] [53] | No[42] [53] | No[42] [53] | No[42] [53] | No[42] [53] | |
| IKVM | Depends on .NET runtime | |||||||||||
| JAmiga | No | No | No | No | No | No | No | No | No | No | No | AmigaOS |
| JamVM | No[23] | Yes[23] | Yes[23] | No[23] | Yes[23] | Yes[23] | Yes[23] | Yes[23] | Yes[23] | No[23] | No[23] | Jailbroken iPhone,[22] kFreeBSD |
| Jato VM | No[43] | Yes[43] | No[43] | No[43] | No[43] | No[43] | No[43] | Under development[43] | ?[43] | No[43] | No[43] | |
| JC virtual machine | No | Yes | Yes | No | No | No | No | No | No | No | No | |
| Jikes RVM | No[44] | Yes[44] | No[44] | No[44] | No[44] | No[44] | No[44] | No[44] | Yes[44] | Yes[44] | No[44] | |
| Kaffe | Using Cygwin [14] | Yes[14] | Yes[14] | Yes[14] | Yes[14] | Yes[14] | ? | Yes[14] | Yes[14] | Yes[14] | Yes[14] | AmigaOS, BeOS, several others[14] |
| Mysaifu JVM | No[45] | No[45] | No[45] | No[45] | No[45] | No[45] | No[45] | No[45] | No[45] | No[45] | No[45] | Windows Mobile |
| SableVM | Using Cygwin [46] | Yes[46] | Yes[46] | ? | ? | ? | ? | ? | Yes[46] | ? | ? | |
References
[edit ]- ^ "Release Eclipse OpenJ9 v0.8.0 · eclipse-openj9/openj9". Github. Retrieved 4 June 2023.
- ^ "Release 0.56.0". 28 October 2025. Retrieved 28 October 2025.
- ^ "The GCJ FAQ - GNU Project - Free Software Foundation (FSF)". Gcc.gnu.org. Retrieved 31 July 2012.
- ^ "Oracle GraalVM for JDK 24". 18 March 2025. Retrieved 19 March 2025.
- ^ 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.
- ^ "Release 8.14.0". 1 October 2025. Retrieved 20 October 2025.
- ^ "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.