# List of Java virtual machines

This article provides non-exhaustive lists of Java SE Java virtual machines (JVMs). It does not include every Java ME vendor. Note that Java EE runs on the standard Java SE JVM but that some vendors specialize in providing a modified JVM optimized for Java EE applications. Much Java development work takes place on Windows, Solaris, Linux, and FreeBSD, primarily with the Oracle JVMs. Note the further complication of different 32-bit/64-bit varieties.
The primary reference Java VM implementation is HotSpot, produced by Oracle Corporation and many other big and medium-sized companies (e.g. IBM, Redhat, Microsoft, Azul, SAP).

## Free and open source implementations
### Active

* Codename One – uses the open source ParparVM
* Eclipse OpenJ9 – open-source from IBM J9, for AIX, Linux (x86, Power, and Z), macOS, Windows, MVS, OS/400, Pocket PC, z/OS.
* GraalVM – is based on HotSpot/OpenJDK, it has a polyglot feature, to transparently mix and match supported languages.
* HotSpot – the open-source Java VM implementation by Oracle.
* Jikes RVM (Jikes Research Virtual Machine) – research project. PPC and IA-32. Supports Apache Harmony and GNU Classpath libraries. Eclipse Public License.
* leJOS – Robotics suite, a firmware replacement for Lego Mindstorms programmable bricks, provides a Java programming environment for the Lego Mindstorms RCX and NXT robots.
* Maxine – meta-circular open source research VM from Oracle Labs and the University of Manchester.

### Inactive

* Apache Harmony – supports several architectures and systems. Discontinued November 2011. Apache License 2.0.
* GCJ the GCC Java compiler, that compiles either to bytecode or to native machine code. As of GCC 7, gcj and associated libjava runtime library have been removed from GCC.
* IKVM.NET – Java for Mono and the Microsoft .NET Framework. Uses OpenJDK. Zlib License.
* JamVM – developed to be an extremely small virtual machine. Uses GNU Classpath and OpenJDK. Supports several architectures. GPL. Last update 2014.
* JOP – hardware implementation of the JVM. GPL 3.
* Juice – JavaME experimental JVM developed to run on the NUXI operating system.
* Jupiter – uses Boehm garbage collector and GNU Classpath. GPL. Unmaintained.
* Kaffe – uses GNU Classpath. GPL. 1.1.9 released on February 26, 2008.
* Mika VM – intended for use in embedded devices. Cross-platform. BSD-style licence.
* NanoVM – developed to run on the Atmel AVR ATmega8 used in the Asuro Robot, can be ported to other AVR-based systems.
* SableVM – first free software JVM to support JVMDI and JDWP. Makes use of GNU Classpath. LGPL. Version 1.13 released on March 30, 2007.
* Squawk virtual machine – a Java ME VM for embedded systems and small devices. Cross-Platform. GPL.
* SuperWaba – Java-like virtual machine for portable devices. GPL. Discontinued, succeeded by TotalCross.
* TakaTuka – for wireless sensor network devices. GPL.
* TinyVM.
* VMKit of LLVM.
* Wonka VM – developed to run on Acunia's ARM-based hardware. Some code drawn from GNU Classpath. BSD-style licence. No longer under active development, superseded by Mika VM.

### Java operating systems

Some JVM's are intended to run without an underlying OS.
* JX – Java operating system that focuses on a flexible and robust operating system architecture developed as an open source system by the University of Erlangen. GPL. Version 0.1.1 released on October 10, 2007
* JavaOS – Original project from Sun Microsystems

## Proprietary implementations
### Active

* Azul Platform Prime – a fully compliant, high-performance Java virtual machine based on OpenJDK that uses Azul Systems's C4 garbage collector and Falcon JIT compiler.
* JamaicaVM (aicas) – a hard real-time Java VM for embedded systems.

### Inactive

* Excelsior JET – a licensed Java SE implementation with AOT compiler for Windows, OS X, and Linux on Intel x86 and Linux on 32-bit ARM.
* Jinitiator – developed by Oracle before they purchased Sun. Designed to improve support for Oracle Forms in web sites.
* JRockit (originally from Appeal Virtual Machines) – acquired by Oracle for Linux, Windows and Solaris.
* Mac OS Runtime for Java (MRJ).
* Microsoft Java Virtual Machine – discontinued in 2001.

### Lesser-known proprietary Java virtual machines

* Blackdown Java was a licensed port to Linux of the reference SunSoft implementation. It was discontinued in 2007, after OpenJDK became available.
* Sun CVM – CVM originally standing for "Compact Java Virtual Machine".
* Gemstone – modified for Java EE features (application DBMS).
* Intent (Tao Group).
* PreonVM – a Java VM for embedded systems and small and resource constrained devices.