Doppio es un proyecto opensource que ha realizado una implementación de la máquina virtual Java en Javascript (más concretamente en Coffeescript, un lenguaje que compila a Javascript). A nivel de implementación de la máquina virtual propiamente dicha, el proyecto está bastante avanzado, soportando ya los 200 opcodes de Java, tipos genéricos, reflexión y entrada y salida, entre otros. Según sus creadores, su propósito es "permitir que Java se ejecute en un navegador web sin ningún tipo de plugin".
Donde todavía es un trabajo en progreso es en el tema de dar soporte a las librerías; por lo de ahora soportan algunas de las más comunes de los paquetes java.lang y java.util, pero cuando uno comienza a escribir código por su cuenta pronto se encuentra con problemas debido a librerías que no están soportadas.
Podéis probar la demo de Doppio aquí. Al abrir este enlace en vuestro navegador tendréis acceso a una consola que corre en Javascript, y que os permitirá ejecutar los comandos Javac y Java, y además acceder a un pequeño editor de texto (edit) para modificar ficheros que se almacenan en el Local storage de vuestro navegador. La demo es bastante funcional para pequeños ejemplos, aunque el compilador es tremendamente lento.
Aunque desde un punto de vista conceptual han progresado bastante, creo que el objetivo de permitir que Java se ejecute en un navegador web sin plugins no va a ser viable en la práctica. Pero en cualquier caso, se trata de un experimento interesante.