JamVM is an open-source Java Virtual Machine (JVM) developed to be extremely small compared with other virtual machines (VMs) while conforming to the Java virtual machine specification version 2 (blue book). JamVM can be configured to use the GNU Classpath or the OpenJDK Java class library and recent versions support object finalization, Soft/Weak/Phantom References, the Java Native Interface (JNI) and the Reflection API. The compacting garbage collector can run either synchronously or asynchronously within its own thread. JamVM currently supports the CPUs: AMD64, ARM, x86, MIPS, PowerPC and SPARC. The OpenJDK compatible version of JamVM is supported by IcedTea, and IcedTea packages of JamVM are included in both Debian and Ubuntu. This enables JamVM to be installed as an alternative Java Virtual Machine to hotspot when using OpenJDK. When using Ubuntu on ARM, JamVM was the default VM. Now, HotSpot Zero is used on armhf. In 2006, JamVM was used by Google's Android team during development of the application framework. The eventual Android successor, Dalvik, was under development at this time, and at the start of 2007 the two were interchangeable. A few months later, Dalvik was established as the primary Android virtual machine and JamVM was disabled. See also List of Java virtual machines Free Java implementations References External links Java virtual machine Free compilers and interpreters