Doppio is a project to get Java running in the browser without any plug-ins. Right now it comprises a fairly complete VM and an implementation of the javap bytecode disassembler. (Doppio is also the Italian word for 'double', and is another name for a double espresso.)
Doppio started out as the mid-term project for a Graduate Systems Seminar. It has since taken on a life of its own, and is complete enough to run implementations of GNU Diff, LZW compression, and the Java 4 compiler. Here's what's supported thus far:
- All 200 opcodes
- Exact emulation of Java's primitive types, include the 64-bit long
- Most of the Reflection API
- File and Standard I/O
- Major JDK libraries such as String, Pattern, and HashMap.