List of Java virtual machines
Appearance
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 a large number of Java ME vendors. 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. A large amount of 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.
Free and open source implementations
Active
- Azul Zulu — is an OpenJDK build supported by Azul Systems and is compliant with the Java SE 11, 8, 7, and 6 standards.
- Codename One — uses the open source ParparVM
- Eclipse OpenJ9 — from IBM, 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.
- JamVM — developed to be an extremely small virtual machine compared to others. Designed to use GNU Classpath. Supports several architectures. GPL.
- 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.
- DoppioJVM — written in JavaScript
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.[1]
- IKVM.NET — Java for Mono and the Microsoft .NET Framework. Uses OpenJDK. Zlib License.
- 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 JVDMI 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.
- JNode (Java New Operating System Design Effort), written 99% in Java (native compiled), provides own JVM and JIT compiler. Based on GNU Classpath.[2][3]
- 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
- JOS - Another Java operating system. Last version in 2006.[4]
- JavaOS - Original project from Sun Microsystems
- PreonVM — a bare metal Java VM for embedded systems.
Proprietary implementations
Active
- Azul Zing JVM — a full compliant Java Virtual Machine based on OpenJDK that uses Azul Systems's C4 garbage collector.
- 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).
- NSIcom CrE-ME.
- PreonVM — a Java VM for embedded systems and small and resource constrained devices.
See also
References
- ^ As of GCC 7, the GCC Java frontend and associated libjava runtime library have been removed from GCC
- ^ "JNode 0.2.8 Released", Thom Holwerda, OSNews, 4 February 2009.
- ^ Jnode: Java New Operating System Design Effort, jnode.org. Retrieved 24 July 2014.
- ^ The JOS Project web page, JOS page