java, como idea de lenguaje/entorno de ejecución, es de lo mejor que he visto (conceptualmente hablando), pero como implementación, me parece ridículo tener que subir las características básicas de un ordenador medio, para poder ejecutar una aplicación que, escrita en cualquier otro lenguaje (incluso en Visual Basic o cualquier otro menos optimizado) se podría ejecutar en un ordenador de bajo perfil sin problemas.
el problema, como lo han mencionado anteriormente, es que solamente en la preparación del entorno de ejecución de la aplicación (o virtual machine, si quieres) es que se come casi todos los recursos de la máquina.
por eso hubiese sido 1000 veces preferible hacer un emulador en C, y dejar el código abierto, para poder ser migrado a cualquier plataforma, con las optimizaciones que esto supondría, cosa que no se puede hacer en Java.