JamVM is a new Java Virtual Machine which conforms to the JVM specification version 2 (blue book). In comparison to most other VM's (free and commercial) it is extremely small, with a stripped executable on PowerPC? of only ~180K, and Intel 150K. However, unlike other small VMs (e.g. KVM) it is designed to support the full specification, and includes support for object finalisation, Soft/Weak/Phantom References, class-unloading, the Java Native Interface (JNI) and the Reflection API.
First download and build classpath at http://www.gnu.org/software/classpath. Only one change needs to be applied, in native/fdlibm/ieeefp.h you need to add
#ifdef __AVR32__ #define __IEEE_BIG_ENDIAN #endif
Configure and build using
./autogen.sh --target=avr32-linux --host=avr32-linux --without-x --without-alsa --disable-gtk-peer --disable-plugin --disable-gconf-peer --disable-examples
The patch is submitted to the classpath bugzilla but not yet included in a release.
./autogen.sh --target=avr32-linux --host=avr32-linux --without-x --without-alsa --disable-gtk-peer
These are the sources of jamvm 1.5.0 with the avr32 patches applied. * jamvm-1.5.0-avr32-src.tgz: jamvm-1.5.0-avr32-src.tgz
You can also find binaries for classpath and jamvm below. They should be unpacked to /usr/local/classpath and /usr/local/jamvm respectively.