List of Java virtual machines

Last updated

This article provides non-exhaustive lists of Java SE Java virtual machines (JVMs). It does not include every Java ME vendor. Note that Jakarta EE runs on the standard Java SE JVM but that some vendors specialize in providing a modified JVM optimized for enterprise 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.

Contents

The primary Java VM reference implementation is the OpenJDK 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

Free and open source implementations — Java version ranges and Technical Details
Name Status Java versions (from … last known) Short description Platforms supported Garbage Collection (GC) Execution Mode JIT Compilers  TCK / License Status
Active / Maintained
ParparVM
(Codename One)
Active8 … 8Translates Java bytecode to C code; used by Codename One.iOS, Android, Desktop targets, UWP / native app targets via native toolchain.Boehm GC (conservative), Simple Mark & Sweep available.AOT (Transpilation)C TranspilerNo TCK.
(Project sources / Codename One).
Substrate (used by GraalVM JDK)Active1.8.0_212 … 25Polyglot VM based on HotSpot/OpenJDK; native-image & multi-language Truffle support.Linux (x86_64, aarch64), macOS, Windows.G1, Serial, Epsilon (HotSpot GCs).Mixed / AOTC1/C2 JIT, Graal JIT (Native Image)TCK/certification varies by distributor.
HotSpot Active1 … 25The widely used OpenJDK VM implementation (Oracle / OpenJDK HotSpot).Cross-platform: Windows, Linux, macOS; primary ISAs: x86-64 and AArch64.Serial, Parallel, G1, Epsilon (E), Shenandoah, GenZGC, GenShen more... Mixed (Interp + JIT)C1/C2 Compilers (Graal optional)Yes (Reference VM in OpenJDK).
OpenJ9 Active8 … 25 [1] IBM J9-based open-source VM (Eclipse OpenJ9). Optimized for cloud/memory.Linux (x86_64, ppc64le, s390x, aarch64), Windows, AIX.Gencon / Generational Concurrent (default), Balanced, Metronome, OptThruput.Mixed (Interp + JIT + AOT)OpenJ9 JIT (Optimizing Compiler)Source-open; binary TCK depends on distributor (e.g., IBM Semeru).
IKVM Active
(Community forks)
1.4 … 8Java on .NET / Mono; bytecode-to-.NET and interop.Runs on the .NET runtime(s).CLR GC (Relies on the underlying .NET GC).JIT / AOTCLR JIT (Code generation by host runtime)No TCK.
Jikes RVM Active
(Research)
6 … 6Jikes Research VM — meta-circular research VM.IA-32 Linux and PowerPC 64 Linux (historically).MMTk (Memory Management Toolkit); modular collectors.JIT OnlyBaseline, Optimizing CompilersNo TCK.
(EPL).
leJOS Active
(Robotics)
1.5 … 1.6Robotics firmware / Java environment for Lego Mindstorms RCX/NXT/EV3.Runs on LEGO Mindstorms hardware families; embedded firmware.Compact GC (Mark and Sweep).InterpreterN/ANo TCK.
Maxine Active
(Research)
7 u6 … 8 u222 [2] Meta-circular research VM from Oracle Labs / Univ. of Manchester.x86_64 (Linux/macOS), AArch64 (Linux), experimental RISC-V.Maxine Heap (Java-written heap & collectors).Mixed (Interp + JIT)Research JIT TiersNo TCK (research project).
Inactive / Archived / Maintenance
Cacao Inactive / Maintenance1.5 … 6JIT-based VM; used historically with GNU Classpath/OpenJDK.Multi-arch historical ports: Linux, macOS, ARM and x86.Boehm GC (typical/historical).JITPlatform JITNo TCK.
Apache Harmony Inactive
(Retired 2011)
5 … 6Clean-room OpenJDK alternative (DRLVM); discontinued.Targeted cross-platform JVM work (Linux, Windows, macOS ports historically).Generational GC (Mark-Compact / Copying).Mixed (Interp + JIT)DRLVM JITNo TCK.
Kaffe Inactive1.2 … 1.4Clean-room JVM implementation (historic).Portable C-based VM; builds available for many POSIX platforms.Conservative / Mark-Sweep (Kaffe GC variants).Mixed (Interp/JIT)Platform JITNo TCK.
GNU Compiler for Java (GCJ)Inactive1.4 … 1.5Ahead-of-time Java compiler in GCC (removed).Historically targeted many Unix/CPU combos.Boehm GC (historical ports).AOTGCC Backend (Native Code Generator)No TCK.
JamVM Inactive / Rare updates5 … 8Small, embeddable JVM often used with GNU Classpath or OpenJDK.Cross-platform (Linux, BSD, macOS).Mark and Sweep (compact).Interpreter / JITOptional JITNo TCK.
JOP Inactive/Academic1.1 … 1.1Hardware JVM for embedded real-time systems.Dedicated hardware (JOP processor family / FPGA/ASIC targets).Hardware-assisted GC (real-time).Hardware (Execution)N/ANo TCK.
Juice Inactive1.1 … 1.1Experimental Java ME JVM (NUXI OS).Platform: niche embedded target (NUXI/experimental hardware).Unknown.InterpreterN/ANo TCK.
Jupiter Inactive1.4 … 1.4Research JVM using Boehm GC and GNU Classpath.Historically Linux/x86 ports documented.Boehm GC.InterpreterN/ANo TCK.
Mika VM Inactive1.3 … 1.4Embedded JVM (successor to Wonka).Embedded/IoT targets (platform-specific firmware).Compact GC.InterpreterN/ANo TCK.
NanoVM Inactive1 … 1Tiny JVM for Atmel AVR (Asuro robot).Atmel AVR microcontroller (Asuro) hardware.Simple GC.InterpreterN/ANo TCK.
SableVM Inactive1.3 … 1.5Research-oriented portable interpreter.Cross-platform Unix-like systems and research hosts.Copying GC.InterpreterN/ANo TCK.
Squawk virtual machine Inactive1.1 … 1.1Sun's small Java ME VM for embedded devices (Sun SPOT).Sun SPOT / small embedded device platforms.Pausing GC (embedded-friendly).InterpreterN/ANo TCK.
SuperWaba Inactive1.2 … 1.2Java-like VM for portable devices; succeeded by TotalCross.Embedded/mobile device targets historically.Mark-Sweep.InterpreterN/ANo TCK.
TakaTuka Inactive/Archived1.1 … 1.1JVM for wireless sensor motes (Tuk compact format).Sensor-mote platforms (TinyOS-like / constrained hardware).Unknown.InterpreterN/ANo TCK.
TinyVMInactive1 … 1Small RCX replacement firmware VM.RCX-like embedded brick hardware targets.Compact GC.InterpreterN/ANo TCK.
VMKitInactive / Archived1.4 … 1.5LLVM-based VM substrate (archived).Cross-platform via LLVM backends (Linux/x86_64 etc.).MMTk.JITLLVM BackendNo TCK.
Wonka VM Inactive1.3 … 1.4Embedded Wonka VM (Acunia).Embedded hardware / specialized boards (historic).Generational GC.InterpreterN/ANo TCK.
Java Operating Systems
JX OS-level (Research)N/AJava operating system (University of Erlangen).OS-level VM (research platforms).Precise GC.Mixed (AOT/JIT)AOT/JITNo TCK.
JavaOS OS-level (Legacy)N/AOriginal Java-based OS from Sun Microsystems for network computers (NCs) and embedded devices.Dedicated network computers (NCs), embedded systems.Classic GC (Mark and Sweep/Compact).Mixed (Interpreter/JIT)Standard Sun JITNo TCK.

Proprietary implementations

Active

Inactive

Lesser-known proprietary Java virtual machines

See also

References

  1. "Version 0.8.0 is the first release".
  2. "MaxineVM - JDK version compatibility table".