Jump to content

List of Java virtual machines

From Wikipedia, the free encyclopedia

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.

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

[edit]
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)
Active 8 … 8 Translates 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 Transpiler No TCK.
(Project sources / Codename One).
Substrate (used by GraalVM JDK) Active 1.8.0_212 … 25 Polyglot VM based on HotSpot/OpenJDK; native-image & multi-language Truffle support. Linux (x86_64, aarch64), macOS, Windows. G1, Serial, Epsilon (HotSpot GCs). Mixed / AOT C1/C2 JIT, Graal JIT (Native Image) TCK/certification varies by distributor.
HotSpot Active 1 … 25 The 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 Active 8 … 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 … 8 Java on .NET / Mono; bytecode-to-.NET and interop. Runs on the .NET runtime(s). CLR GC (Relies on the underlying .NET GC). JIT / AOT CLR JIT (Code generation by host runtime) No TCK.
Jikes RVM Active
(Research)
6 … 6 Jikes Research VM — meta-circular research VM. IA-32 Linux and PowerPC 64 Linux (historically). MMTk (Memory Management Toolkit); modular collectors. JIT Only Baseline, Optimizing Compilers No TCK.
(EPL).
leJOS  Active
(Robotics)
1.5 … 1.6 Robotics firmware / Java environment for Lego Mindstorms RCX/NXT/EV3. Runs on LEGO Mindstorms hardware families; embedded firmware. Compact GC (Mark and Sweep). Interpreter N/A No 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 Tiers No TCK (research project).
Inactive / Archived / Maintenance
Cacao Inactive / Maintenance 1.5 … 6 JIT-based VM; used historically with GNU Classpath/OpenJDK. Multi-arch historical ports: Linux, macOS, ARM and x86. Boehm GC (typical/historical). JIT Platform JIT No TCK.
Apache Harmony Inactive
(Retired 2011)
5 … 6 Clean-room OpenJDK alternative (DRLVM); discontinued. Targeted cross-platform JVM work (Linux, Windows, macOS ports historically). Generational GC (Mark-Compact / Copying). Mixed (Interp + JIT) DRLVM JIT No TCK.
Kaffe Inactive 1.2 … 1.4 Clean-room JVM implementation (historic). Portable C-based VM; builds available for many POSIX platforms. Conservative / Mark-Sweep (Kaffe GC variants). Mixed (Interp/JIT) Platform JIT No TCK.
GNU Compiler for Java (GCJ) Inactive 1.4 … 1.5 Ahead-of-time Java compiler in GCC (removed). Historically targeted many Unix/CPU combos. Boehm GC (historical ports). AOT GCC Backend (Native Code Generator) No TCK.
JamVM Inactive / Rare updates 5 … 8 Small, embeddable JVM often used with GNU Classpath or OpenJDK. Cross-platform (Linux, BSD, macOS). Mark and Sweep (compact). Interpreter / JIT Optional JIT No TCK.
JOP Inactive/Academic 1.1 … 1.1 Hardware JVM for embedded real-time systems. Dedicated hardware (JOP processor family / FPGA/ASIC targets). Hardware-assisted GC (real-time). Hardware (Execution) N/A No TCK.
Juice Inactive 1.1 … 1.1 Experimental Java ME JVM (NUXI OS). Platform: niche embedded target (NUXI/experimental hardware). Unknown. Interpreter N/A No TCK.
Jupiter Inactive 1.4 … 1.4 Research JVM using Boehm GC and GNU Classpath. Historically Linux/x86 ports documented. Boehm GC. Interpreter N/A No TCK.
Mika VM Inactive 1.3 … 1.4 Embedded JVM (successor to Wonka). Embedded/IoT targets (platform-specific firmware). Compact GC. Interpreter N/A No TCK.
NanoVM Inactive 1 … 1 Tiny JVM for Atmel AVR (Asuro robot). Atmel AVR microcontroller (Asuro) hardware. Simple GC. Interpreter N/A No TCK.
SableVM Inactive 1.3 … 1.5 Research-oriented portable interpreter. Cross-platform Unix-like systems and research hosts. Copying GC. Interpreter N/A No TCK.
Squawk virtual machine Inactive 1.1 … 1.1 Sun's small Java ME VM for embedded devices (Sun SPOT). Sun SPOT / small embedded device platforms. Pausing GC (embedded-friendly). Interpreter N/A No TCK.
SuperWaba Inactive 1.2 … 1.2 Java-like VM for portable devices; succeeded by TotalCross. Embedded/mobile device targets historically. Mark-Sweep. Interpreter N/A No TCK.
TakaTuka Inactive/Archived 1.1 … 1.1 JVM for wireless sensor motes (Tuk compact format). Sensor-mote platforms (TinyOS-like / constrained hardware). Unknown. Interpreter N/A No TCK.
TinyVM Inactive 1 … 1 Small RCX replacement firmware VM. RCX-like embedded brick hardware targets. Compact GC. Interpreter N/A No TCK.
VMKit Inactive / Archived 1.4 … 1.5 LLVM-based VM substrate (archived). Cross-platform via LLVM backends (Linux/x86_64 etc.). MMTk. JIT LLVM Backend No TCK.
Wonka VM Inactive 1.3 … 1.4 Embedded Wonka VM (Acunia). Embedded hardware / specialized boards (historic). Generational GC. Interpreter N/A No TCK.
Java Operating Systems
JX OS-level (Research) N/A Java operating system (University of Erlangen). OS-level VM (research platforms). Precise GC. Mixed (AOT/JIT) AOT/JIT No TCK.
JavaOS OS-level (Legacy) N/A Original 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 JIT No TCK.

Proprietary implementations

[edit]

Active

[edit]
  • 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

[edit]

Lesser-known proprietary Java virtual machines

[edit]
  • 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.

See also

[edit]

References

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