Comparison of Java virtual machines
{{Short description|None}}
{{Use dmy dates|date=April 2024}}
{{Update|date=March 2019}}
Version information
{{sort under}}
class="wikitable sortable sort-under" style="text-align: center; width: auto;" |
Name
! Creator ! data-sort-type="isodate"|First public release ! class="unsortable sort-under"|Latest stable version ! data-sort-type="isodate"|Latest release date ! |Cost, availability ! |License |
---|
Eclipse OpenJ9 (formerly IBM J9)
| IBM |data-sort-value="2018-03-15"| 15 Mar 2018{{Cite web |title=Release Eclipse OpenJ9 v0.8.0 · eclipse-openj9/openj9 |url=https://github.com/eclipse-openj9/openj9/releases/tag/openj9-0.8.0 |access-date=2023-06-04 |website=Github |language=en}} | {{wikidata|property|edit|reference|Q823837|P348}} |data-sort-value="{{wikidata|qualifier|raw|Q823837|P348|P577}}"| {{Start date and age|{{wikidata|qualifier|Q823837|P348|P577}}}} | {{Free}} | Eclipse Public License 2.0 |
GCJ
| GNU | data-sort-value="1998-09-06"| 6 September 1998 | 6.4 (Terminal) | data-sort-value="2017-07-04"| 4 July 2017 | {{Free}} | GPL version 2 or later, with the "libgcc exception"{{cite web|url=https://gcc.gnu.org/java/faq.html |title=The GCJ FAQ - GNU Project - Free Software Foundation (FSF) |publisher=Gcc.gnu.org |date= |access-date=2012-07-31}} |
GraalVM
| Oracle | data-sort-value="2019-05-01"| May 2019 | {{wikidata|property|edit|reference|Q16928072|P348}} |data-sort-value="{{wikidata|qualifier|raw|Q16928072|P348|P577}}"| {{Start date and age|{{wikidata|qualifier|Q16928072|P348|P577}}}} | {{Free}} | GPL version 2 only |
HotSpot, OpenJDK edition
|data-sort-value="1999-04-27"| 27 April 1999 | jdk-16 |data-sort-value="2021-03-16"| 16 March 2021 | {{Free}} | GPL version 2 only |
HotSpot, Oracle JDK edition
|data-sort-value="1999-04-27"| 27 April 1999 | jdk 16 |data-sort-value="2021-03-16"| 16 March 2021 | {{Free}} | {{Proprietary}} |
HotSpot, Java SE embedded edition
|data-sort-value="1999-04-27"| 27 April 1999 | {{dunno}} | {{dunno}} | {{Nonfree|Commercial}} |
HotSpot, Zero port
| Gary Benson{{cite web|url=http://gbenson.net/ |title=gbenson.net |publisher=gbenson.net |date= |access-date=2012-07-31}} | {{dunno}} | {{dunno}} | {{dunno}} | {{Free}} | GPL version 2 only |
IKVM
| Jeroen Frijters |data-sort-value="2004-06-28"| 28 June 2004 | {{wikidata|property|edit|reference|Q263390|P348}} |data-sort-value="{{wikidata|qualifier|raw|Q263390|P348|P577}}"| {{Start date and age|{{wikidata|qualifier|Q263390|P348|P577}}}} | {{Free}} | zlib License{{cite web |url=https://github.com/ikvmnet/ikvm/blob/main/LICENSE.md |title=LICENSE.md |work=ikvmnet/ikvm |via=GitHub |access-date=2025-03-22}} |
JAmiga
| Peter Werno, Joakim Nordström |data-sort-value="2005-05-19"| 19 May 2005{{cite web|url=https://sourceforge.net/projects/jamiga/files/jamiga/pre-alpha%200.0.5/|access-date=2012-08-11|date=|title=JAmiga - Browse /jamiga/pre-alpha 0.0.5 at Sourceforge.net}} | 1.2 |data-sort-value="2014-01-06"| 6 January 2014 | {{Free}} | GPL version 2 or later |
JamVM
| Robert Lougher |data-sort-value="2003-03-13"| 13 March 2003 | 2.0.0 |data-sort-value="2014-06-30"| 30 July 2014 | {{Free}} | GPL version 2 or later |
Jato VM
| Pekka Enberg and contributors{{cite web|url=https://github.com/penberg/jato/blob/master/README|title=jato/README at master · penberg/jato · GitHub|website=GitHub|date=2012-11-29|access-date=2012-08-04}} {{Dead link|date=July 2019 |bot=InternetArchiveBot |fix-attempted=yes }} | {{dunno}} |data-sort-value="2012-01-04"| 4 January 2012 | {{Free}} | GPL version 2 only |
JC virtual machine
| Archie L. Cobbs | {{dunno}} | 1.4.7 |data-sort-value="2005-11-13"| 13 November 2005 | {{Free}} | LGPL version 2.1 or later |
Jikes RVM
| IBM |data-sort-value="2001-10-14"| 14 October 2001 |data-sort-value="2016-02-18"| 18 February 2016 | {{Free}} | Eclipse Public License version 1.0{{cite web|url=http://www.jikesrvm.org/License/ |title=License |publisher=Jikes RVM |date= |access-date=2012-07-31}} |
Kaffe
| Transvirtual Technologies |data-sort-value="1996-01-01| 1996 | 1.1.9 |data-sort-value="2008-02-22| 22 February 2008 | {{Free}} |GPL version 2 or later |
Mysaifu JVM
| {{dunno}} |data-sort-value="2005-04-16"| 16 April 2005{{cite web|url=http://www2s.biglobe.ne.jp/~dat/java/project/jvm/index_en.html|title=Mysaifu JVM|access-date=2012-08-10|url-status=dead|archiveurl=https://archive.today/20121219080700/http://www2s.biglobe.ne.jp/~dat/java/project/jvm/index_en.html|archivedate=2012-12-19}} |data-sort-value="2010-03-05"| 5 March 2010 | {{Free}} |GPL version 2 only |
SableVM
| {{dunno}} | 1.13 |data-sort-value="2007-03-30| 30 March 2007{{cite web|url=https://sourceforge.net/projects/sablevm/files/sablevm/1.13/ |title=SableVM - Browse /sablevm/1.13 at |publisher=Sourceforge.net |date=2007-03-30 |access-date=2012-07-31}} | {{Free}} |LGPL version 2.1 or later |
Technical information
class="wikitable sortable sort-under" style="text-align: center; width: auto;" |
rowspan="2" | JVM
! rowspan="2" | Status ! rowspan="2" | Latest supported Java version ! colspan="3" | Supported class libraries ! colspan="3" | Performance |
---|
GNU Classpath
! OpenJDK ! Other ! Interpretation ! AOT ! JIT |
GCJ
|No longer maintained or distributed by GNU as of GCC 7{{Cite web|url=https://gcc.gnu.org/gcc-7/changes.html|title=GCC 7 Release Series — Changes, New Features, and Fixes - GNU Project - Free Software Foundation (FSF)|website=gcc.gnu.org}} | {{dunno}} | {{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
| | {{dunno}} | {{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
| | {{dunno}} | {{dunno}} | {{dunno}} | | colspan="3" | Whatever the .NET runtime uses |
JAmiga
| | {{No}} | | {{No}} | {{No}} |
JamVM
| | | {{No}} |
Jato VM
| | 1.6{{cite web|url=https://github.com/penberg/jato/blob/master/include/vm/java-version.h |date= |access-date=2012-08-04|title=jato/include/vm/java-version.h at master · penberg/jato · GitHub|website= GitHub}} | {{No}}{{cite web|url=https://github.com/penberg/jato/blob/master/TODO|access-date=2012-08-04|title=jato/TODO at master · penberg/jato · GitHub|website=GitHub}} | |
JC virtual machine
|Translates Java to C and compiles it with a C compiler. | {{No}} | |
Jikes RVM
| | {{partial|Port}}{{cite web|url=https://code.google.com/p/openjdk4jikesrvm/ |title=openjdk4jikesrvm - Use Openjdk library as JikesRVM's class library - Google Project Hosting |date= |access-date=2012-07-31}}{{Cite web |url=http://jira.codehaus.org/browse/RVM-549 |title=[#RVM-549] Initial support for OpenJDK class library - jira.codehaus.org |access-date=2012-07-22 |archive-url=https://web.archive.org/web/20130603034438/http://jira.codehaus.org/browse/RVM-549 |archive-date=2013-06-03 |url-status=dead }} | {{dunno}} | {{Yes}} |
Kaffe
| | {{No}} | |
Mysaifu JVM
| | {{dunno}} | {{No}} | |
SableVM
|Unmaintained | 1.4 | {{Yes}} | {{No}} | | {{Yes}} | {{No}} | {{No}} |
Supported CPU architectures
Supported operating systems
class="wikitable sortable sort-under" style="text-align: center; width: auto;" |
JVM
! Windows ! Linux ! FreeBSD ! NetBSD ! OpenBSD ! Solaris ! Darwin ! macOS ! iOS ! BeOS ! Haiku ! AIX ! IRIX ! OS/2 ! AmigaOS ! Other |
---|
GCJ
| {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} |
HotSpot, OpenJDK edition
| {{Yes}}{{Cite web |url=http://hg.openjdk.java.net/jdk8/build/raw-file/tip/README-builds.html#windows |title=OpenJDK Build README |access-date=2012-07-24 |archive-url=https://web.archive.org/web/20120706123226/http://hg.openjdk.java.net/jdk8/build/raw-file/tip/README-builds.html#windows |archive-date=2012-07-06 |url-status=dead }} (distributed as source code) | {{Yes}} | {{partial|Port}}{{Cite web|url=http://openjdk.java.net/projects/bsd-port/|title=OpenJDK: BSD Port Project|website=openjdk.java.net}} | {{Yes}} | {{dunno}} | {{No}} | {{No}} | {{partial|Port}}{{Cite web|url=http://openjdk.java.net/projects/haiku-port/|title=OpenJDK: Port: Haiku|website=openjdk.java.net}} | {{no}} | {{No}} | {{No}} | |
HotSpot, Oracle JDK edition
| {{No}} | {{No}} | {{No}} | {{dunno}} | {{dunno}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | |
HotSpot, Java SE embedded edition
| |
HotSpot, Zero port
| {{No}}{{Cite web|url=http://openjdk.java.net/projects/zero/|title=OpenJDK: Zero-Assembler Project|website=openjdk.java.net}} | |
IKVM
|colspan="18" | 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
| {{partial|On Jailbroken iPhone}} |kFreeBSD |
Jato VM
| {{partial|Under development}} | |
JC virtual machine
| {{No}} | {{Yes}} | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | |
Jikes RVM
| |
Kaffe
| {{partial|Using Cygwin}} | {{dunno}} | {{Yes}} |
Mysaifu JVM
| |
SableVM
| {{partial|Using Cygwin}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} |{{dunno}} | {{dunno}} |{{dunno}} |{{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} | |