I haven't tried it myself, but I think you can also program the Arduino using the programming language called "Processing". It's a lot like Java (in fact, it is an internal DSL (domain specific language) in Java).
That's a cool hardware chip, but its language Arduino appears to be procedural (more like writing a run method for a premade object (the hardware being the object)). I haven't heard about such a chip for Java before but I can give you some leads.
Here are some Java technologies that might meet your needs (how active they are I don't know, but perhaps you can track down some hardware makers that support them): JAVA EMBEDDED, Java Card, Java TV.