JamVM ist eine neue Java Virtual Machine, die der JVM Spezifikation Version 2 (blue book) entspricht. Im Vergleich mit den meisten anderen VM’s (frei und kommerziell) ist JamVM extrem klein (“stripped executables” für PowerPC nur ~160K, und für Intel 140K). Dennoch unterstützt es, anders als andere “kleine” VMs (z.B. KVM) die vollständige Spezifikation, und enthält Support für “object finalisation”, Soft/Weak/Phantom Referenzen, class-unloading, das Java Native Interface (JNI) und die Reflection API.
JamVM nutzt die GNU Classpath Java Class Library. Eine Reihe von Klassen sind Referenz-Klassen, die für eine spezielle VM angepasst werden müssen. Diese werden zusammen mit JamVM gebündelt.
Da die normale Klassenbiliothek (glibj.zip) über 9 MB groß ist wird standardmäßig nur eine reduzierte Version (mini.jar) installiert. Deshalb muss jamvm folgendermaßen aufgerufen werden um z.B. die Datei Hello.class im aktuellen Verzeichnis aufzurufen:
jamvm -Xbootclasspath/a:/usr/share/classpath/mini.jar Hello