The different iPhones do not have an official Java Virtual Machine (yet), but alternative solutions seem to become quite viable.
The most promising solution for BT747 is 'xmlvm' - a toolchain that translates Java (and some other languages) to an intermediate language 'xmlvm' - an xml description of the program. That description can then be translated to 'Objective C' - the language used for iPhone programming. Important parts of the iPhone library have been given a Java alternative which means the program with the iPhone look on a standard Java Virtual Machine (J2SE).
I've started setting up a project for that (http://www.bt747.org/node/164). More background is in the forums (http://www.bt747.org/node/112).
However, a volunteer is needed to do the real development. So if you feel like it, let me know.