A JVM Implementation in Java
In a 1998 seminar at the University of Oregon, we started the
implementation of a JVM in Java for instruction purposes. Even though
the implementation is not complete, several people expressed interest,
so here is what is available.
What is missing Mostly support for Java libraries and LOTS of
cleaning up. The JVM specification only requires the implementation of
an interpreter for the bytecodes. But as is well known much of the
functionality of Java comes from the libraries, many of which require
JVM support. I've also run out of time and didn't implement a couple
of instructions and lots of other little things. If I ever have a
couple of weeks to devote to this project, I believe I can get the
implementation in good shape.
Update (July 2007): A small product based on this OJVM was released at www.hacker.org/worm. It is a
programming game where people write bots to play the old Light Cycle game
from Tron. A derivative of the OJVM is included in the SDK available from
that page that fixes a few bugs, includes a couple of more instructions, and
has support for instruction counting.