Comparison of Java virtual machines

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Name Creator First public release Latest stable version Latest release date Cost, availability License
Avian ReadyTalk 2008, March 3[1] 1.0.1[1] 2014, June 2[2] Free ISC license[3]
CACAO Vienna University of Technology ? 1.6.0[4] 2012, September 4[4] Free GPL version 2 or later.[5]
CEE-J Skelmir  ?  ?  ?  ?  ?
GCJ GNU ? ? ? Free GPL version 2 or later, with the "libgcc exception".[6]
HotSpot, OpenJDK edition Sun Microsystems, Oracle 1999, April 27 ? ? Free GPL version 2 only.
HotSpot, Oracle JDK edition Sun Microsystems, Oracle 1999, April 27 ? ? Free Proprietary
HotSpot, Java SE embedded edition Sun Microsystems, Oracle 1999, April 27 ? ? Commercial Proprietary[7]
HotSpot, Zero port Gary Benson[8] ? ? ? Free GPL version 2 only.
IKVM.NET Jeroen Frijters 2004, June 28 7.0.4335.0 2011, December 5 Free zlib License[9]
JAmiga Peter Werno, Joakim Nordström 2005, May 19[10] 0.0.6[11] 2010, May 21[12] Free GPL version 2 or later.
JamVM Robert Lougher 2003, March 13 1.5.4 2010, January 1 Free GPL version 2 or later.
Jato VM Pekka Enberg and contributors[13] ? 0.3[14] 2012, January 4[14] Free GPL version 2 only.[13]
JC virtual machine Archie L. Cobbs ? 1.4.7 2005, November 13 Free LGPL version 2.1 or later
Jikes RVM IBM 2001, October 14 3.1.3[15] 2013, February 12[15] Free Eclipse Public License version 1.0[16]
Kaffe Transvirtual Technologies 1996 1.1.9 2008, February 22 Free GPL version 2 or later.[17]
Mysaifu JVM ? 2005, April 16[18] 0.4.8[18] 2010, March 5[18] Free GPL version 2 only[18]
SableVM Sable Research Group ? 1.13 2007, March 30[19] Free LGPL version 2.1 or later.
VMKit J3 ? 2008, October 20 0.30 ? Free University of Illinois/NCSA Open Source License[20]
Zing Azul Systems Zing 4.0, October 2010 Zing 5.10 2014, June Commercial Proprietary
Zulu Azul Systems Zulu 7.0, September 2013 Zulu 8.1 2014, June Free GNU General Public License Version 2 [21]

Technical information[edit]

JVM Status Latest supported Java version Supported class libraries Performance
GNU Classpath OpenJDK Other Interpretation AOT JIT
Avian ? No[22] Yes[22] Apache Harmony, Dalvik, own internal class library[22] Yes[23] Yes[23] Yes[23]
CACAO 1.6[24] Yes[4] Yes[4] No[25] No[25] Yes[25]
Skelmir ? 1.4 ? ? ? ? ?
GCJ ? 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[26] Yes[27] No Yes[28] No No
JamVM 1.4[29] Yes[30] With third-party patches[31] Yes[30] No Yes[30]
Jato VM 1.6[32] Yes[14] No[33] No[33] No[33] Yes[14]
JC virtual machine Translates Java to C and compiles it with a C compiler. 1.4[34] Yes[35] No Yes[36] Yes[36] Yes[36]
Jikes RVM 1.6[37] Yes[38] Port[39][40] Apache Harmony[38] No[41] ? Yes
Kaffe 1.4[42] Yes[17] No Yes[17] No[17] Yes[17]
Mysaifu JVM ? Yes[43] No Yes[44] No[44] No[44]
SableVM Unmaintained 1.4 Yes No Yes No No
VMKit J3 1.5[45] Yes[46] Yes[46] ? Yes[47] Yes[47]
Zing Commercially available 1.7 No Yes Yes No Yes
Zulu Available free, commercial support optional 1.8 No Yes Yes No Yes

Supported CPU architectures[edit]

JVM x86 x86-64 SPARC MIPS Itanium Power ARM Alpha S390 zSeries m68k
Avian Yes[23] Yes[23] No[23] No[23] No[23] Yes[23] Yes[23] No[23] No[23] No[23] No[23]
CACAO Yes[25] Yes[25] Not any more[25] Yes[25] No[25] Yes[25] Yes[25] Yes[25] Yes[25] No[25] Not any more[25]
CEE-J Yes Yes No Yes No Yes Yes No No No No
GCJ Yes[48] Yes[48] Yes[48] Yes[48] Yes[48] Yes[48] Yes[48] Yes[48] Yes[48] No[48] No[48]
HotSpot, OpenJDK edition Yes[49] Yes[49] Solaris only[49] Port[50][51] No[49] PowerPC/AIX port[52] Yes[49] No[49] No[49] No[49] No[49]
HotSpot, Oracle JDK edition Yes[49] Yes[49] Solaris only[49] No[49] Java 1.6[53] No[49] Yes[49] No[49] No[49] No[49] No[49]
HotSpot, Java SE embedded edition Yes[7] Yes[7] Yes[7] ? ? Yes[7] Yes[7] ? ? ? ?
HotSpot, Zero port Yes[54] Yes[54] No[54] Yes[54] Yes[54] Yes[54] Yes[54] Yes[54] No[54] Yes[54] No[54]
IKVM.NET Any architecture with a .NET framework.
JAmiga ? ? No No No Yes No No No No Yes
JamVM Yes[30] Yes[30] Yes[30] Yes[30] No[30] Yes[30] Yes[30] No[30] No[30] No[30] No[30]
Jato VM Yes[14] Under development[55] No No No Under development[55] Preliminary ARMv5 support[33] No No No No
JC virtual machine Yes No No No No No No No No No No
Jikes RVM Yes[56] No[56] No[56] No[56] No[56] Yes[56] No[56] No[56] No[56] No[56] No[56]
Kaffe Yes[17] Yes[17] Yes[17] Yes[17] Yes[17] Yes[17] Yes[17] Yes[17] Yes[17] No[17] Yes[17]
Mysaifu JVM No[57] No[57] No[57] No[57] No[57] No[57] Yes[57] No[57] No[57] No[57] No[57]
SableVM Yes[58] Yes Yes[58] Yes Yes[58] Yes[58] Yes[58] Yes[58] Yes[58] No[58] Yes[58]
VMKit J3 Yes[47] Yes[47] No[47] No[47] No[47] Yes[47] Yes[47] No[47] No[47] No[47] No[47]
Zing No[59] Yes[59] No[59] No[59] No[59] No[59] No[59] No[59] No[59] No[59] No[59]
Zulu Yes[21] Yes[21] No[21] No[21] No[21] No[21] No[21] No[21] No[21] No[21] No[21]

Supported operating systems[edit]

JVM Windows Linux FreeBSD NetBSD OpenBSD Solaris OpenSolaris Darwin Mac OS X iOS BeOS Haiku AIX IRIX OS/2 Windows Mobile AmigaOS Other
Avian Yes[23] Yes[23] Yes[23] No[23] No[23] No[23] No[23] No[23] Yes[23] Yes[23] No[23] No[23] No[23] No[23] No[23] No[23] No[23]
CACAO Using Cygwin[60] Yes[60] Yes[60] Yes[60] No[60] Yes[60] Yes[60] Yes[60] ?[60] No[60] No[60] No[60] No[60] Yes[60] No[60] No[60] No[60] kFreeBSD, ucLinux[60]
CEE-J Yes Yes ? ? ? ? ? ? Yes[48] ? ? ? ? ? ? ? ? ?
GCJ Yes[48] Yes[48] Yes[48] ? ? Yes[48] ? Yes[48] Yes[48] ? ? ? ? Yes[48] ? No[48] No[48] DEC OSF 4.0f and 5.1, Hitachi SH-3/4 micro-controller[48]
HotSpot, OpenJDK edition Yes[61] (distributed as source code) Yes Port[62] Port[62] Port[62] Yes Yes[63] ? Yes[64] No No Port[65] Port[52] No Port[66] No No
HotSpot, Oracle JDK edition Yes[49] Yes[49] No No No Yes[49] ? ? Yes[49] No No No No No No No No
HotSpot, Java SE embedded edition Yes[7] Yes[7] No[7] No[7] No[7] Yes[7] ?[7] No[7] No[7] No[7] No[7] No[7] No[7] No[7] No[7] No[7] No[7]
HotSpot, Zero port No[54][67] Yes[54][67] No[54][67] No[54][67] No[54][67] No[54][67] No[54][67] No[54][67] No[54][67] No[54][67] No[54][67] No[54][67] No[54][67] No[54][67] No[54][67] No[54][67] No[54][67]
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[30] Yes[30] Yes[30] No[30] Yes[30] Yes[30] Yes[30] Yes[30] Yes[30] On Jailbroken iPhone[30] No[30] No[30] No[30] No[30] No[30] No[30] No[30] kFreeBSD
Jato VM No[55] Yes[55] No[55] No[55] No[55] No[55] No[55] Under development[55] ?[55] No[55] No[55] No[55] No[55] No[55] No[55] No[55] No[55]
JC virtual machine No Yes Yes No No No No No No No No No No No No No No
Jikes RVM No[56] Yes[56] No[56] No[56] No[56] No[56] No[56] No[56] Yes[56] No[56] No[56] No[56] Yes[56] No[56] No[56] No[56] No[56]
Kaffe Using Cygwin[17] Yes[17] Yes[17] Yes[17] Yes[17] Yes[17] ? Yes[17] Yes[17] No[17] Yes[17] No[17] Yes[17] Yes[17] No[17] No[17] Yes HPUX 11.x, BSDI 2.x, Unixware, SCO 3.2v5, NeXTStep 3.x, DG/UX, OpenStep 4.x, QNX 4.x, NCR MP-RAS 3.x, OSKit 0.96 +, GNU Hurd, Cygwin, DragonFly BSD, Interix, Ultrix 4.2, PS2Linux, AUX, MachTen 4.0.3, Fujitsu UXP/DS [17]
Mysaifu JVM No[57] No[57] No[57] No[57] No[57] No[57] No[57] No[57] No[57] No[57] No[57] No[57] No[57] No[57] No[57] Yes[57] No[57]
SableVM Using Cygwin[58] Yes[58] Yes[58] ? ? ? ? ? Yes[58] ? ? ? ? ? ? ? ?
VMKit J3 No[47] Yes[47] No[47] No[47] No[47] No[47] No[47] ?[47] Yes[47] No[47] No[47] No[47] No[47] No[47] No[47] No[47] No[47]
Zing No[59] Yes[59] No[59] No[59] No[59] No[59] No[59] No[59] No[59] No[59] No[59] No[59] No[59] No[59] No[59] No[59] No[59]
Zulu Yes[21] Yes[21] No[21] No[21] No[21] No[21] No[21] No[21] Yes[21] No[21] No[21] No[21] No[21] No[21] No[21] No[21] No[21]

References[edit]

  1. ^ a b "All releases of Avian – Freecode". Freecode.com. Retrieved 2012-07-31. 
  2. ^ "v1.0.1". GitHub. 2014-06-02. Retrieved 2014-06-25. 
  3. ^ "Avian | License". Oss.readytalk.com. Retrieved 2012-07-31. 
  4. ^ a b c d "cacaojvm.org". cacaojvm.org. Retrieved 2012-12-12. 
  5. ^ "CacaoLicense - CACAO Wiki". C1.complang.tuwien.ac.at. 2010-09-17. Retrieved 2012-07-31. 
  6. ^ "The GCJ FAQ - GNU Project - Free Software Foundation (FSF)". Gcc.gnu.org. Retrieved 2012-07-31. 
  7. ^ a b c d e f g h i j k l m n o p q r s t u v w http://www.oracle.com/technetwork/java/embedded/resources/se-embeddocs/index.html#sysreqs
  8. ^ "gbenson.net". gbenson.net. Retrieved 2012-07-31. 
  9. ^ "License - ikvm". SourceForge.net. 2012-05-10. Retrieved 2012-07-31. 
  10. ^ "JAmiga - Browse /jamiga/pre-alpha 0.0.5 at Sourceforge.net". Retrieved 2012-08-11. 
  11. ^ "Downloads - jamiga2 - Java for Amiga - Google Project Hosting". Retrieved 2012-08-11. 
  12. ^ "Readme - jamiga2 - Java for Amiga - Google Project Hosting". Retrieved 2012-08-11. 
  13. ^ a b "jato/README at master · penberg/jato · GitHub". 2012-11-29. Retrieved 2012-08-04. 
  14. ^ a b c d e "Jato". Retrieved 2012-08-04. 
  15. ^ a b "Jikes RVM - Browse /jikesrvm/3.1.3 at". Sourceforge.net. 2013-02-12. Retrieved 2013-02-28. 
  16. ^ "License". Jikes RVM. Retrieved 2012-07-31. 
  17. ^ 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 ac ad ae af https://github.com/kaffe/kaffe/blob/9c61a687642bcce614054b6b694cbd6586210965/README
  18. ^ a b c d "Mysaifu JVM". Retrieved 2012-08-10. 
  19. ^ "SableVM - Browse /sablevm/1.13 at". Sourceforge.net. 2007-03-30. Retrieved 2012-07-31. 
  20. ^ "[llvm-project] View of /vmkit/trunk/LICENSE.TXT". Llvm.org. Retrieved 2012-07-31. 
  21. ^ 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 ac http://www.azulsystems.com/products/zulu.  Missing or empty |title= (help)
  22. ^ a b c "Avian | Status". Oss.readytalk.com. Retrieved 2012-07-31. 
  23. ^ 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 ac ad ae http://oss.readytalk.com/avian/index.html
  24. ^ "Faq - Cacao Wiki". C1.complang.tuwien.ac.at. 2012-03-07. Retrieved 2012-07-31. 
  25. ^ a b c d e f g h i j k l m n http://c1.complang.tuwien.ac.at/cacaowiki/CacaoFeatures
  26. ^ "jni.c - jamiga2 - Java for Amiga - Google Project Hosting". Retrieved 2012-08-11. 
  27. ^ "ClasspathDevelopment - jamiga2 - This document describes the work done and needed for the GNU Classpath - Java for Amiga - Google Project Hosting". Retrieved 2012-08-11. 
  28. ^ "interpreter.c - jamiga 2 - Java for Amiga - Google Project Hosting". Retrieved 2012-08-11. 
  29. ^ "SourceForge.net Repository - [jamvm] Contents of /jamvm/src/properties.c". Jamvm.cvs.sourceforge.net. Retrieved 2012-07-31. 
  30. ^ 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 ac ad ae http://jamvm.sourceforge.net
  31. ^ "Porting JamVM to the CVMI". Fuseyism.com. Retrieved 2012-07-31. 
  32. ^ "jato/include/vm/java-version.h at master · penberg/jato · GitHub". Retrieved 2012-08-04. 
  33. ^ a b c d "jato/TODO at master · penberg/jato · GitHub". Retrieved 2012-08-04. 
  34. ^ "SourceForge.net Repository - [jcvm] Contents of /jcvm/libjc/properties.c". Jcvm.cvs.sourceforge.net. 2005-05-15. Retrieved 2012-07-31. 
  35. ^ "JC Virtual Machine: Home". Jcvm.sourceforge.net. Retrieved 2012-07-31. 
  36. ^ a b c "JC Virtual Machine Documentation". Jcvm.sourceforge.net. Retrieved 2012-07-31. 
  37. ^ "SourceForge: jikesrvm/jikesrvm: libraryInterface/GNUClasspath/EPL/src/gnu/classpath/VMSystemProperties.java@6e24f915d0ba". Jikesrvm.hg.sourceforge.net. Retrieved 2012-07-31. 
  38. ^ a b "SourceForge: jikesrvm/jikesrvm: files". Jikesrvm.hg.sourceforge.net. 2012-07-19. Retrieved 2012-07-31. 
  39. ^ "openjdk4jikesrvm - Use Openjdk library as JikesRVM's class library - Google Project Hosting". Code.google.com. Retrieved 2012-07-31. 
  40. ^ http://jira.codehaus.org/browse/RVM-549
  41. ^ "Feature request for interpreter". 
  42. ^ https://github.com/kaffe/kaffe/blob/master/kaffe/kaffe/version.h
  43. ^ "SVN - Mysaifu JVM". 2008-11-13. Retrieved 2012-08-10. 
  44. ^ a b c "Diary of Mysaifu JVM". 2010-02-09. Retrieved 2012-08-10. 
  45. ^ http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/SetProperties.inc?view=co
  46. ^ a b http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/
  47. ^ 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 ac ad http://vmkit.llvm.org/index.html
  48. ^ a b c d e f g h i j k l m n o p q r s t u v http://gcc.gnu.org/java/status.html
  49. ^ a b c d e f g h i j k l m n o p q r s t u v w http://www.oracle.com/technetwork/java/javase/config-417990.html
  50. ^ http://openjdk.java.net/projects/mips-port/
  51. ^ http://icedtea.classpath.org/wiki/MIPSPort
  52. ^ a b http://openjdk.java.net/projects/ppc-aix-port
  53. ^ http://www.oracle.com/technetwork/java/javase/itaniumreleasenotes-140450.html
  54. ^ 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 http://icedtea.classpath.org/wiki/ZeroSharkFaq
  55. ^ a b c d e f g h i j k l m n o p q r s "[ANNOUNCE] Jato 0.3 - Google Groups". 2012-01-04. Retrieved 2012-08-04. 
  56. ^ 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 http://jikesrvm.org/Supported+Platforms
  57. ^ 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 "SVN - Mysaifu JVM". 2009-10-09. Retrieved 2012-08-10. 
  58. ^ a b c d e f g h i j k l m http://sablevm.org/features.html
  59. ^ 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 http://www.azulsystems.com/products/zing/specs
  60. ^ a b c d e f g h i j k l m n o p q r http://mips.complang.tuwien.ac.at/hg/cacao/file/532286ef9f3e/configure.ac
  61. ^ http://hg.openjdk.java.net/jdk8/build/raw-file/tip/README-builds.html#windows
  62. ^ a b c http://openjdk.java.net/projects/bsd-port
  63. ^ http://hg.openjdk.java.net/jdk8/build/raw-file/tip/README-builds.html#opensolaris
  64. ^ http://openjdk.java.net/projects/macosx-port/
  65. ^ http://openjdk.java.net/projects/haiku-port
  66. ^ http://www.os2world.com/content/view/21877/1/
  67. ^ a b c d e f g h i j k l m n o p q http://openjdk.java.net/projects/zero/