Jelatine JVM

16/10/2009: Jelatine 0.9.4 has been released, you can find
it on SourceForge's
download
area. This is mostly a bug-fix release, a lot of nasty bugs have been
quashed and the machine is now much more robust, especially when using
multi-threading. Jelatine is licensed under the GPLv3.

Jelatine is a new Java Virtual Machine which targets the Java 2 Micro Edition
Connected Limited Device Configuration (J2ME CLDC). The machine was designed to
work on very small embedded systems and requires as little as 32 KiB of RAM for
running non-trivial Java code (provided that the executable is stored in ROM).
It also provides an (almost) CLDC compliant classpath which has been obtained by
modifying and reusing parts of the
GNU/Classpath
project.

To build the machine you will need a C99 compiler, Sun's javac compiler
available from
Java developer kit
and the zziplib library if you
for JAR file support. For thread support you either need POSIX threads support
or GNU/Pth. To build the
source code documentation you will need
Doxygen. If you want to try out Jelatine's
mainline you can now find it through Sourceforge's subversion service. You can
check it out with the following command:

svn checkout http://svn.code.sf.net/p/jelatine/code/trunk jelatine

The Jelatine JVM is currently functional and was tested with non-trivial code
but it still lacks a lot of features (mainly bytecode verification and an
basic profile implementation) so consider it a work in progress. Feedback is
welcome, bug reports, advices, suggestions and requests should be sent to the
e-mail address provided below or through Sourceforge's
tracker.

Features

Runs in as little as 32 KiB of RAM

Provides both a portable interpreter written in plain C and a faster one
using GNU C compiler extensions

Uses a custom memory manager which allocates C and Java objects from the
same unified heap with an hybrid best-fit/first-fit policy