Adobe have had a working flash player available internally for the iPhone for a long time. The problem with Flash is that it executes arbitrary third-party code. That's the sticking point as Apple are control-freaks who want the ability to vet all executable code which finds its way either directly or indirectly onto iPhones; something obviously impossible with Flash, just as with Java.