Home

DoppioJVM

A Java Virtual Machine written in 100% JavaScript.

Read the academic paper » Browse the code »

Shell Demo

Upload Files...

Click the button to start the demo. The demo will immediately preload a 40MB file containing the Java Class Library.

OS Resources

Contains support for a variety of UNIX-like operating system resources, including:
Thread Pool: Emulates multiple concurrent threads, letting DoppioJVM support multithreaded JVM programs.
File System: Maps files and directories to browser storage, cloud storage, zip files, and more! Uses our BrowserFS library.
Network Sockets: Maps outgoing TCP socket connections to WebSockets, which can connect to unmodified servers wrapped in Websockify.
Unmanaged Heap: Enables emulation of the controversial sun.misc.Unsafe API, which OpenJDK uses extensively internally.
Standard Streams: Supports stdin/stdout/stderr, which can be hooked up to arbitrary UIs (such as a terminal).

Compatibility

DoppioJVM uses an unmodified version of the Java 8 OpenJDK Java Class Library, giving it compatibility with a wide range of existing software.

Try software out by uploading a JAR with the "Upload Files..." button, and running it in the terminal with the java command!

Who

DoppioJVM is a research project from the PLASMA lab at the University of Massachusetts Amherst. DoppioJVM is primarily the work of John Vilk, with guidance from his advisor, Emery Berger. In addition, a number of other wonderful folks have made valuable contributions to DoppioJVM.