This article needs additional citations for verification. (September 2014)
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 FreeBSD, primarily with the Oracle JVMs. Note the further complication of different 32-bit/64-bit varieties.
Free and open source implementationsEdit
- Codename One – uses the open source ParparVM
- Eclipse OpenJ9 – open-source from IBM J9, for Windows, AIX, Linux (x86, Power, and Z), macOS, 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.
- 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 . Makes use of GNU Classpath. LGPL. Version 1.13 released on March 30, 2007. and
- 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.
- 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 systemsEdit
Some JVM's are intended to run without an underlying OS.
- 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.
- 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 machinesEdit
- 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.
- "GCJ - GCC Wiki". gcc.gnu.org.