Software:Comparison of Java virtual machines

From HandWiki
Revision as of 13:53, 9 February 2024 by Corlink (talk | contribs) (over-write)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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

  1. "Release Eclipse OpenJ9 v0.8.0 · eclipse-openj9/openj9" (in en). https://github.com/eclipse-openj9/openj9/releases/tag/openj9-0.8.0. 
  2. "The GCJ FAQ - GNU Project - Free Software Foundation (FSF)". Gcc.gnu.org. https://gcc.gnu.org/java/faq.html. Retrieved 2012-07-31. 
  3. 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]
  4. "gbenson.net". gbenson.net. http://gbenson.net/. Retrieved 2012-07-31. 
  5. "License - ikvm". SourceForge.net. 2012-05-10. https://sourceforge.net/apps/mediawiki/ikvm/index.php?title=License. Retrieved 2012-07-31. 
  6. "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. 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. 8.0 8.1 8.2 8.3 8.4 "Jato". http://www.jatovm.org/. Retrieved 2012-08-04. 
  9. 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. 
  10. "License". Jikes RVM. http://www.jikesrvm.org/License/. Retrieved 2012-07-31. 
  11. 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. 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. 
  13. "SableVM - Browse /sablevm/1.13 at". Sourceforge.net. 2007-03-30. https://sourceforge.net/projects/sablevm/files/sablevm/1.13/. Retrieved 2012-07-31. 
  14. "GCC 7 Release Series — Changes, New Features, and Fixes - GNU Project - Free Software Foundation (FSF)". https://gcc.gnu.org/gcc-7/changes.html. 
  15. "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. 
  16. "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. 
  17. "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. 
  18. "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. 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/. 
  20. "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. 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. 
  22. "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. 
  23. "JC Virtual Machine: Home". Jcvm.sourceforge.net. http://jcvm.sourceforge.net/. Retrieved 2012-07-31. 
  24. 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. 
  25. "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. 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. 
  27. "openjdk4jikesrvm - Use Openjdk library as JikesRVM's class library - Google Project Hosting". https://code.google.com/p/openjdk4jikesrvm/. Retrieved 2012-07-31. 
  28. "[#RVM-549] Initial support for OpenJDK class library - jira.codehaus.org". http://jira.codehaus.org/browse/RVM-549. 
  29. "Feature request for interpreter". http://jira.codehaus.org/browse/RVM-240. 
  30. "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. 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. 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. 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. 
  34. "OpenJDK: Port: Mips". http://openjdk.java.net/projects/mips-port/. 
  35. "MIPSPort - IcedTea". https://icedtea.classpath.org/wiki/MIPSPort. 
  36. 36.0 36.1 "OpenJDK: PowerPC/AIX Port Project". http://openjdk.java.net/projects/ppc-aix-port/. 
  37. http://www.oracle.com/technetwork/java/javase/itaniumreleasenotes-140450.html [bare URL]
  38. 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. 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. 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. 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. 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. 
  43. "OpenJDK Build README". http://hg.openjdk.java.net/jdk8/build/raw-file/tip/README-builds.html#windows. 
  44. 44.0 44.1 44.2 "OpenJDK: BSD Port Project". http://openjdk.java.net/projects/bsd-port/. 
  45. "OpenJDK Build README". http://hg.openjdk.java.net/jdk8/build/raw-file/tip/README-builds.html#opensolaris. 
  46. "OpenJDK: Mac OS X Port Project". http://openjdk.java.net/projects/macosx-port/. 
  47. "OpenJDK: Port: Haiku". http://openjdk.java.net/projects/haiku-port/. 
  48. "OS2 World.Com - Java (OpenJDK) 1.6.0 Build 25 GA3". http://www.os2world.com/content/view/21877/1/. 
  49. 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/.