JamVM is a compact, open-source virtual machine for the Java programming language, originally written by Robert Lougher. The execution engine supports different levels of optimisation, from a basic switched interpreter to inline-threading with stack-caching (equivalent in performance to a simple JIT).
JamVM supports two class library backends:
- GNU Classpath - lightweight, suitable for embedded targets
- OpenJDK 8 - for environments requiring broader API coverage
The primary targets are embedded Linux systems. The following platforms are actively tested:
- Linux / 32-bit ARM
- Linux / 64-bit ARM (aarch64)
- Linux / x86_64
macOS with Apple Silicon is also actively used as a development platform.
Other platforms are supported, including FreeBSD and OpenBSD, but they are not regularly tested.
See the INSTALL and plain-text README files.
JamVM was created and developed by Robert Lougher, who maintained it until version 2.0.0, released in July 2014. The original project site can be found at https://jamvm.sourceforge.net/.
This project is the maintained continuation of his work, with a focus on embedded Linux targets.