on 8-bit microcontroller?
Now it's a reality with the NanoVM Java virtual machine.
This is the architecture and how it works.

As many of the microncontrollers have havard architecture [where code and data are in separate memory spaces ] ,
so you could not use data EEPROM as a code memory. But through this nanovm technology it is a possibility.
This is good for our robotic poeple, and it will create a easy environment more than arduno. Because uploading a
application means just upload it using a IR link. It's like a completely micro-operating system.
So hope some of you boys and girls have some fun of it.
source:
http://www.harbaum.org/till/nanovm/index.shtml
--Happy Coding--