Es gibt zwar nicht direkt "Java" als Möglichkeit für iOS Geräte zu proggen, aber dafür eine ähnliche Alternative.
Titanium Mobile von Appcelerator.
Auch wenn nicht auf Java, sondern auf JavaScript gesetzt wird, macht das Programm einem dennoch Nativen Code. Und das nicht nur für die iOS Platform, sondern auch für Android. (Und ich hab mal Gerüchteweise was von Blackberry gehört). Aber Android und iOS funktionieren jetzt schon.
Man kann sich also eine einzige Codebase schaffen und diese für beide Platformen builden. Vorrausgesetzt man achtet auf die Unterschiede zwischen den Platformen und fängt diese im Code ab, damit der Complier da nicht ins stocken gerät. Wäre z.b schwierig die iAD Implementierung zu verwirklichen wenn man einen Android Build machen möchte.
Die Oberflächen Gestaltung ist zwar nicht ganz so komfortabel wie mit dem InterfaceBuilder von xCode, aber ansonsten kann man damit schon ne Menge machen. Besonders wenn einem JavaScript vertrauter ist als objC.
Um die Business Logik dennoch in Java schreiben zu können käme mir da noch die Idee dies mittels GWT zu probieren. Da kann man ja (so ziemlich) reinen Java Code schreiben und dieser Code wird dann in JavaScript übersetzt. Ohne das jetzt getestet zu haben würde ich vermuten, dass dieser JavaScript Code dann auch in Verbindung mit Titanium funktionieren müsste.
Das ist, wie gesagt aber nur mal so ins Blaue geraten von mir. Hab ich noch nicht ausprobiert.
Bisher reichte es mir die Logik direkt in JavaScript zu schreiben.