Software:Comparison of Java virtual machines
From HandWiki
Short description: None
Version information
Name | Creator | First public release | Latest stable version | Latest release date | Cost, availability | License |
---|---|---|---|---|---|---|
Eclipse OpenJ9 (formerly IBM J9) | IBM | 15 Mar 2018[1] | Error: first parameter is missing. | Free | Apache License 2.0 Eclipse Public 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 | Error: first parameter is missing. | 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.NET | Jeroen Frijters | 28 June 2004 | 7.0.4335.0 | 5 December 2011 | 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
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.NET | ? | ? | ? | Whatever the .NET runtime uses | ||||
JAmiga | 1.4[15] | Yes[16] | No | Yes[17] | No | No | ||
JamVM | 1.8[18] | Yes[19] | Yes[19] | Yes[19] | No | Yes[19] | ||
Jato VM | 1.6[20] | Yes[8] | No[21] | No[21] | No[21] | Yes[8] | ||
JC virtual machine | Translates Java to C and compiles it with a C compiler. | 1.4[22] | Yes[23] | No | Yes[24] | Yes[24] | Yes[24] | |
Jikes RVM | 1.6[25] | Yes[26] | Port[27][28] | Apache Harmony[26] | No[29] | ? | Yes | |
Kaffe | 1.4[11] | Yes[11] | No | Yes[11] | No[11] | Yes[11] | ||
Mysaifu JVM | ? | Yes[30] | No | Yes[31] | No[31] | No[31] | ||
SableVM | Unmaintained | 1.4 | Yes | No | Yes | No | No |
Supported CPU architectures
JVM | x86 | x86-64 | SPARC | MIPS | Itanium | Power ISA | ARM | Alpha | S/390 | z/Architecture | m68k |
---|---|---|---|---|---|---|---|---|---|---|---|
GCJ | Yes[32] | Yes[32] | Yes[32] | Yes[32] | Yes[32] | Yes[32] | Yes[32] | Yes[32] | Yes[32] | No[32] | No[32] |
HotSpot, OpenJDK edition | Yes[33] | Yes[33] | Solaris only[33] | Port[34][35] | No[33] | PowerPC/AIX port[36] | Yes[33] | No[33] | No[33] | No[33] | No[33] |
HotSpot, Oracle JDK edition | Yes[33] | Yes[33] | Solaris only[33] | No[33] | Java 1.6[37] | No[33] | Yes[33] | No[33] | No[33] | No[33] | No[33] |
HotSpot, Java SE embedded edition | Yes[3] | Yes[3] | Yes[3] | ? | ? | Yes[3] | Yes[3] | ? | ? | ? | ? |
HotSpot, Zero port | Yes[38] | Yes[38] | No[38] | Yes[38] | Yes[38] | Yes[38] | Yes[38] | Yes[38] | No[38] | Yes[38] | No[38] |
IKVM.NET | Any architecture with a .NET framework. | ||||||||||
JAmiga | ? | ? | No | No | No | Yes | No | No | No | No | Yes |
JamVM | Yes[19] | Yes[19] | Yes[19] | Yes[19] | No[19] | Yes[19] | Yes[19] | No[19] | No[19] | No[19] | No[19] |
Jato VM | Yes[8] | Under development[39] | No | No | No | Under development[39] | Preliminary ARMv5 support[21] | No | No | No | No |
JC virtual machine | Yes | No | No | No | No | No | No | No | No | No | No |
Jikes RVM | Yes[40] | No[40] | No[40] | No[40] | No[40] | Yes[40] | No[40] | No[40] | No[40] | No[40] | No[40] |
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[41] | No[41] | No[41] | No[41] | No[41] | No[41] | Yes[41] | No[41] | No[41] | No[41] | No[41] |
SableVM | Yes[42] | Yes | Yes[42] | Yes | Yes[42] | Yes[42] | Yes[42] | Yes[42] | Yes[42] | No[42] | Yes[42] |
Supported operating systems
JVM | Windows | Linux | FreeBSD | NetBSD | OpenBSD | Solaris | OpenSolaris | Darwin | macOS | iOS | BeOS | Haiku | AIX | IRIX | OS/2 | Windows Mobile | AmigaOS | Other |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GCJ | Yes[32] | Yes[32] | Yes[32] | ? | ? | Yes[32] | ? | Yes[32] | Yes[32] | ? | ? | ? | ? | Yes[32] | ? | No[32] | No[32] | DEC OSF 4.0f and 5.1, Hitachi SH-3/4 micro-controller[32] |
HotSpot, OpenJDK edition | Yes[43] (distributed as source code) | Yes | Port[44] | Port[44] | Port[44] | Yes | Yes[45] | ? | Yes[46] | No | No | Port[47] | Port[36] | No | Port[48] | No | No | |
HotSpot, Oracle JDK edition | Yes[33] | Yes[33] | No | No | No | Yes[33] | ? | ? | Yes[33] | No | No | No | No | No | No | 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] | No[3] | No[3] | No[3] | No[3] | No[3] | No[3] | |
HotSpot, Zero port | No[38][49] | Yes[38][49] | No[38][49] | No[38][49] | No[38][49] | No[38][49] | No[38][49] | No[38][49] | No[38][49] | No[38][49] | No[38][49] | No[38][49] | No[38][49] | No[38][49] | No[38][49] | No[38][49] | No[38][49] | |
IKVM.NET | Any operating system with a .NET framework | |||||||||||||||||
JAmiga | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | |
JamVM | No[19] | Yes[19] | Yes[19] | No[19] | Yes[19] | Yes[19] | Yes[19] | Yes[19] | Yes[19] | On Jailbroken iPhone[19] | No[19] | No[19] | No[19] | No[19] | No[19] | No[19] | No[19] | kFreeBSD |
Jato VM | No[39] | Yes[39] | No[39] | No[39] | No[39] | No[39] | No[39] | Under development[39] | ?[39] | No[39] | No[39] | No[39] | No[39] | No[39] | No[39] | No[39] | No[39] | |
JC virtual machine | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | |
Jikes RVM | No[40] | Yes[40] | No[40] | No[40] | No[40] | No[40] | No[40] | No[40] | Yes[40] | No[40] | No[40] | No[40] | Yes[40] | No[40] | No[40] | No[40] | No[40] | |
Kaffe | Using Cygwin[11] | Yes[11] | Yes[11] | Yes[11] | Yes[11] | Yes[11] | ? | Yes[11] | Yes[11] | No[11] | Yes[11] | No[11] | Yes[11] | Yes[11] | No[11] | No[11] | Yes | Many others[11] |
Mysaifu JVM | No[41] | No[41] | No[41] | No[41] | No[41] | No[41] | No[41] | No[41] | No[41] | No[41] | No[41] | No[41] | No[41] | No[41] | No[41] | Yes[41] | No[41] | |
SableVM | Using Cygwin[42] | Yes[42] | Yes[42] | ? | ? | ? | ? | ? | Yes[42] | ? | ? | ? | ? | ? | ? | ? | ? |
References
- ↑ "Release Eclipse OpenJ9 v0.8.0 · eclipse-openj9/openj9" (in en). https://github.com/eclipse-openj9/openj9/releases/tag/openj9-0.8.0.
- ↑ "The GCJ FAQ - GNU Project - Free Software Foundation (FSF)". Gcc.gnu.org. https://gcc.gnu.org/java/faq.html. Retrieved 2012-07-31.
- ↑ 3.00 3.01 3.02 3.03 3.04 3.05 3.06 3.07 3.08 3.09 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 http://www.oracle.com/technetwork/java/embedded/resources/se-embeddocs/index.html#sysreqs [bare URL]
- ↑ "gbenson.net". gbenson.net. http://gbenson.net/. Retrieved 2012-07-31.
- ↑ "License - ikvm". SourceForge.net. 2012-05-10. https://sourceforge.net/apps/mediawiki/ikvm/index.php?title=License. Retrieved 2012-07-31.
- ↑ "JAmiga - Browse /jamiga/pre-alpha 0.0.5 at Sourceforge.net". https://sourceforge.net/projects/jamiga/files/jamiga/pre-alpha%200.0.5/. Retrieved 2012-08-11.
- ↑ 7.0 7.1 "jato/README at master · penberg/jato · GitHub". 2012-11-29. https://github.com/penberg/jato/blob/master/README. Retrieved 2012-08-04. [yes|permanent dead link|dead link}}]
- ↑ 8.0 8.1 8.2 8.3 8.4 "Jato". http://www.jatovm.org/. Retrieved 2012-08-04.
- ↑ 9.0 9.1 "Jikes RVM - Browse /jikesrvm at Sourceforge.net". Sourceforge.net. 2016-11-03. https://sourceforge.net/projects/jikesrvm/files/jikesrvm/. Retrieved 2016-11-03.
- ↑ "License". Jikes RVM. http://www.jikesrvm.org/License/. Retrieved 2012-07-31.
- ↑ 11.00 11.01 11.02 11.03 11.04 11.05 11.06 11.07 11.08 11.09 11.10 11.11 11.12 11.13 11.14 11.15 11.16 11.17 11.18 11.19 11.20 11.21 11.22 11.23 11.24 11.25 11.26 11.27 11.28 11.29 11.30 11.31 11.32 "kaffe/kaffe". 9 November 2021. https://github.com/kaffe/kaffe.
- ↑ 12.0 12.1 12.2 12.3 "Mysaifu JVM". Archived from the original on 2012-12-19. https://archive.today/20121219080700/http://www2s.biglobe.ne.jp/~dat/java/project/jvm/index_en.html. Retrieved 2012-08-10.
- ↑ "SableVM - Browse /sablevm/1.13 at". Sourceforge.net. 2007-03-30. https://sourceforge.net/projects/sablevm/files/sablevm/1.13/. Retrieved 2012-07-31.
- ↑ "GCC 7 Release Series — Changes, New Features, and Fixes - GNU Project - Free Software Foundation (FSF)". https://gcc.gnu.org/gcc-7/changes.html.
- ↑ "jni.c - jamiga2 - Java for Amiga - Google Project Hosting". https://code.google.com/p/jamiga2/source/browse/trunk/jamiga/src/jni.c. Retrieved 2012-08-11.
- ↑ "ClasspathDevelopment - jamiga2 - This document describes the work done and needed for the GNU Classpath - Java for Amiga - Google Project Hosting". https://code.google.com/p/jamiga2/wiki/ClasspathDevelopment. Retrieved 2012-08-11.
- ↑ "interpreter.c - jamiga 2 - Java for Amiga - Google Project Hosting". https://code.google.com/p/jamiga2/source/browse/trunk/jamiga/src/interpreter.c. Retrieved 2012-08-11.
- ↑ "JamVM | Release notes for JamVM at SourceForge.net". sourceforge.net. 2014-07-30. https://sourceforge.net/projects/jamvm/files/jamvm/JamVM%202.0.0/README/view?view=markup. Retrieved 2014-10-24.
- ↑ 19.00 19.01 19.02 19.03 19.04 19.05 19.06 19.07 19.08 19.09 19.10 19.11 19.12 19.13 19.14 19.15 19.16 19.17 19.18 19.19 19.20 19.21 19.22 19.23 19.24 19.25 19.26 19.27 19.28 19.29 19.30 19.31 "JamVM -- A compact Java Virtual Machine". http://jamvm.sourceforge.net/.
- ↑ "jato/include/vm/java-version.h at master · penberg/jato · GitHub". https://github.com/penberg/jato/blob/master/include/vm/java-version.h. Retrieved 2012-08-04.
- ↑ 21.0 21.1 21.2 21.3 "jato/TODO at master · penberg/jato · GitHub". https://github.com/penberg/jato/blob/master/TODO. Retrieved 2012-08-04.
- ↑ "SourceForge.net Repository - [jcvm] Contents of /jcvm/libjc/properties.c". Jcvm.cvs.sourceforge.net. 2005-05-15. http://jcvm.cvs.sourceforge.net/viewvc/jcvm/jcvm/libjc/properties.c?revision=1.17&view=markup. Retrieved 2012-07-31.
- ↑ "JC Virtual Machine: Home". Jcvm.sourceforge.net. http://jcvm.sourceforge.net/. Retrieved 2012-07-31.
- ↑ 24.0 24.1 24.2 "JC Virtual Machine Documentation". Jcvm.sourceforge.net. http://jcvm.sourceforge.net/share/jc/doc/jc.html. Retrieved 2012-07-31.
- ↑ "SourceForge: jikesrvm/jikesrvm: libraryInterface/GNUClasspath/EPL/src/gnu/classpath/VMSystemProperties.java@6e24f915d0ba". Jikesrvm.hg.sourceforge.net. http://jikesrvm.hg.sourceforge.net/hgweb/jikesrvm/jikesrvm/file/6e24f915d0ba/libraryInterface/GNUClasspath/EPL/src/gnu/classpath/VMSystemProperties.java. Retrieved 2012-07-31.
- ↑ 26.0 26.1 "SourceForge: jikesrvm/jikesrvm: files". Jikesrvm.hg.sourceforge.net. 2012-07-19. http://jikesrvm.hg.sourceforge.net/hgweb/jikesrvm/jikesrvm/file/6e24f915d0ba/libraryInterface. Retrieved 2012-07-31.
- ↑ "openjdk4jikesrvm - Use Openjdk library as JikesRVM's class library - Google Project Hosting". https://code.google.com/p/openjdk4jikesrvm/. Retrieved 2012-07-31.
- ↑ "[#RVM-549] Initial support for OpenJDK class library - jira.codehaus.org". http://jira.codehaus.org/browse/RVM-549.
- ↑ "Feature request for interpreter". http://jira.codehaus.org/browse/RVM-240.
- ↑ "SVN - Mysaifu JVM". 2008-11-13. http://sourceforge.jp/projects/mysaifujvm/scm/svn/blobs/head/jvm/trunk/lib/classpath-org/README.txt. Retrieved 2012-08-10.
- ↑ 31.0 31.1 31.2 "Diary of Mysaifu JVM". 2010-02-09. http://www2s.biglobe.ne.jp/~dat/java/project/jvm/diary_en.html#20100209. Retrieved 2012-08-10.
- ↑ 32.00 32.01 32.02 32.03 32.04 32.05 32.06 32.07 32.08 32.09 32.10 32.11 32.12 32.13 32.14 32.15 32.16 32.17 32.18 32.19 32.20 "GCJ - Status - GNU Project - Free Software Foundation (FSF)". https://gcc.gnu.org/java/status.html.
- ↑ 33.00 33.01 33.02 33.03 33.04 33.05 33.06 33.07 33.08 33.09 33.10 33.11 33.12 33.13 33.14 33.15 33.16 33.17 33.18 33.19 33.20 33.21 33.22 "Oracle JDK 7 and JRE 7 Certified System Configurations". https://www.oracle.com/technetwork/java/javase/config-417990.html.
- ↑ "OpenJDK: Port: Mips". http://openjdk.java.net/projects/mips-port/.
- ↑ "MIPSPort - IcedTea". https://icedtea.classpath.org/wiki/MIPSPort.
- ↑ 36.0 36.1 "OpenJDK: PowerPC/AIX Port Project". http://openjdk.java.net/projects/ppc-aix-port/.
- ↑ http://www.oracle.com/technetwork/java/javase/itaniumreleasenotes-140450.html [bare URL]
- ↑ 38.00 38.01 38.02 38.03 38.04 38.05 38.06 38.07 38.08 38.09 38.10 38.11 38.12 38.13 38.14 38.15 38.16 38.17 38.18 38.19 38.20 38.21 38.22 38.23 38.24 38.25 38.26 38.27 "ZeroSharkFaq - IcedTea". https://icedtea.classpath.org/wiki/ZeroSharkFaq.
- ↑ 39.00 39.01 39.02 39.03 39.04 39.05 39.06 39.07 39.08 39.09 39.10 39.11 39.12 39.13 39.14 39.15 39.16 39.17 39.18 "[ANNOUNCE Jato 0.3 - Google Groups"]. 2012-01-04. https://groups.google.com/forum/?fromgroups#!topic/jatovm/Jzbk-vTRb00. Retrieved 2012-08-04.
- ↑ 40.00 40.01 40.02 40.03 40.04 40.05 40.06 40.07 40.08 40.09 40.10 40.11 40.12 40.13 40.14 40.15 40.16 40.17 40.18 40.19 40.20 40.21 40.22 40.23 40.24 40.25 40.26 40.27 "Supported Platforms". https://www.jikesrvm.org/SupportedPlatforms/.
- ↑ 41.00 41.01 41.02 41.03 41.04 41.05 41.06 41.07 41.08 41.09 41.10 41.11 41.12 41.13 41.14 41.15 41.16 41.17 41.18 41.19 41.20 41.21 41.22 41.23 41.24 41.25 41.26 41.27 "SVN - Mysaifu JVM". 2009-10-09. http://sourceforge.jp/projects/mysaifujvm/scm/svn/blobs/head/jvm/trunk/jvm/jvm.sln?export=raw. Retrieved 2012-08-10.
- ↑ 42.00 42.01 42.02 42.03 42.04 42.05 42.06 42.07 42.08 42.09 42.10 42.11 42.12 "SableVM Project". http://sablevm.org/features.html.
- ↑ "OpenJDK Build README". http://hg.openjdk.java.net/jdk8/build/raw-file/tip/README-builds.html#windows.
- ↑ 44.0 44.1 44.2 "OpenJDK: BSD Port Project". http://openjdk.java.net/projects/bsd-port/.
- ↑ "OpenJDK Build README". http://hg.openjdk.java.net/jdk8/build/raw-file/tip/README-builds.html#opensolaris.
- ↑ "OpenJDK: Mac OS X Port Project". http://openjdk.java.net/projects/macosx-port/.
- ↑ "OpenJDK: Port: Haiku". http://openjdk.java.net/projects/haiku-port/.
- ↑ "OS2 World.Com - Java (OpenJDK) 1.6.0 Build 25 GA3". http://www.os2world.com/content/view/21877/1/.
- ↑ 49.00 49.01 49.02 49.03 49.04 49.05 49.06 49.07 49.08 49.09 49.10 49.11 49.12 49.13 49.14 49.15 49.16 "OpenJDK: Zero-Assembler Project". http://openjdk.java.net/projects/zero/.
Original source: https://en.wikipedia.org/wiki/Comparison of Java virtual machines.
Read more |