Also prinzipiell gibt es drei Möglichkeiten:
1) J2SE - da gibt es derzeit nur Mysaifu und das Teil ist noch sehr instabil. Außerdem hat man auf einem PDA halt recht wenig RAM. In Mysaifu sind 2MB Heap voreingestellt - alleine das dürfte die allermeisten J2SE-Anwendungen unausführbar machen. Wie ist es aber bisher ohnehin nicht gelungen, irgendeine mäßig komplexe Anwendung darunter zum Laufen zu bringen auch wenn ich den Heap entsprechend hochsetze.
2) J2ME - da gibt es nach wie vor nur Creme von NSICOM und "WebSphere Everyplace Micro Environment Device" von IBM. Beide kosten allerdings Geld - die JVM von IBM ist aber billiger (ca. 7€ inklusive Mehrwertsteuer).
3) Java-ähnliche VMs. Das sind vor allem Ewe und Superwaba zu nennen.
http://www.ewesoft.com/
http://www.superwaba.com.br/en/default.asp
Nachteil: man kann halt nur die jeweilige Klassenbibliothek nehmen, auch der Sprachumfang ist beschränkt. Ich denke auch, man kann davon ausgehen, daß die Performance niedriger ist als die einer "professionellen" VM. Vorteil: Anwender selbstgeschriebener Programme müssen sich keine VM kaufen.
-> eine so richtig tolle Lösung für Java@PDA gibt es nicht und wird es vermutlich auch in absehbarer Zeit nicht geben. Sun hat die Pläne für eine eigene J2ME-VM ja wieder aufgegeben (Codename war "Captain America").
Wenn man nur für sich selber oder im professionellen Bereich was machen möchte, wäre wohl Websphere/J2ME zu empfehlen. Wenn man seine PDA-Programme als Freeware/Shareware verteilen möchte, würde ich derzeit Ewe benutzen.