Recently i came across something called XMLVM, used for something called XML11 which reads the Java byte code and places the instructions (elementary ones, such as push/pop ..etC) into an XML file.
There's obviously a lot of overhead involved, but one of its uses is an implementation of the X11 protocol allowing you to have a remote desktop client that runs in your browser completely with Javascript, without the Java plugin.
After converting the byte code to XML, the XML is sent to the browser via AJAX and processed. There's clearly a huge overhead for this, but i saw a demo and it worked.
Basically they made a version of Java's AWT package which interfaces with their XML11 broker, sitting at the server, which then sends the interface to the browser. So you would be able to start any AWT based Java application and see it on a web browser.
This is only slightly related to this thread. :)