JamVM是一个新的Java虚拟机,它符合JVM规范第二版。
JamVM的特点是极小,在PowerPC上仅有大约200KB,而在Intel处理器上仅有180KB。
不像其他的小虚拟机(如KVM),JamVM支持完整的规范,包括支持对象终结(Object Finalization)、软/弱/虚引用、类卸载(class- unloading)、Java本地接口(JNI)和反射API。
JamVM 解释器是高度优化的,吸收了许多最新的技术如stack-caching(堆栈缓存)和direct-threading(直接线程)技术。其最新版本扩 展了这些,包括一个代码复制的JIT编译器,且编译器也可移植。JamVM的大多数代码均用C语言实现,易于移植到新架构。
JamVM支持下列OS/架构:
一、Linux 1)PowerPC JamVM开发的主要平台,在G3和G4系统得到良好的测试。 2)i386 在i586、i686 (Pentium III)、Pentium 4、Athlon和Core 2 Duo等建立和测试。 3)ARM 运行Linux的iPAQ等 4)AMD64 在AMD Athlon 64、Pentium 4和Core 2 Duo上建立和测试 5)MIPS 在O32 ABI上建立和测试
二、Mac OS X / Darwin 1)PowerPC Mac OS X 10.3 (Panther)和10.4 (Tiger)上建立和测试 2)PowerPC64 G5上建立和测试 3)i386 Apple MacBook Pro (Intel Core Duo and Core 2 Duo)上建立和测试 4)ARM 使用非官方的toolchain建立并测试
JamVM使用GNU Classpath的Java类库,大量的引用类必须为指定的VM进行修改。使用Classpath的0.97版肯定能工作。
注意:JamVM与Sun或IBM的虚拟机或OpenJDK一起将不能工作。