I started a port of MIDPath on the iPhone a few weeks ago. It was a bit easier than I expected.
First I had to understand how to use iPhone APIs from Java. Markus Heberlings from the MicroEmulator project helped me a lot in this task. I used Markus's library (straptease) to write a simple backend for MIDPath.
Next I added a directional pad to give a chance to people with large fingers to navigate through complex user interfaces.
Finally, I improved overall performances by compiling native backends for rasterization and SVG rendering.
Currently MIDPath runs on top of JamVM 1.5.1/Classpath and performances are correct for productivity applications. It should be faster when the iPhone backend will use OpenGL ES.
Available features:
Full support of the MIDP2 widgets (LCDUI)
JSR226/SVG
JSR75/File Connection API
Networking
Missing:
Sound
In the video below, you can see a few midlets running on the iPhone: