Windows./*, Linux/i386, Linux/amd64 (nenn' ich jetzt einfach mal and64), Linux/p5,
Solaris/*, moeglicherweise FreeBSD/i386 (evtl. auch amd64). Es gibt wohl auch offizielle Portierungen fuer Linux/arm (Zaurus). Wie es z.Z. mit */alpha (z.B. True64 und OpenVMS) aussieht, weiss ich nicht.
Aber mal andersrum: ich habe hier OpenBSD auf drei Plattformen laufen (i386, powerpc, arm, demnaechst auch alpha), und nur fuer i386 gibt's ein lauffaehiges JDK, wobei aber nicht so ganz klar ist, ob ich das denn ueberhaupt produktiv verwenden darf (zumindest fuer Versionen < 1.7).
Sun hat in der Vergangenheit in erster Linie Binaries ueber den Zaun geworfen. Die Sourcen gab's zwar auch, aber eben nur fuer "Forschungszwecke", d.h. wenn man daraus ein JDK baut, dann ist es automatisch kein offizielles JDK mehr, und es darf theoretisch eben nur fuer Forschungszwecke verwendet werden. Apple und IBM haben AFAIK das Zeug teilweise von Sun lizensiert oder neu entwickelt, aber an die Sourcen kommt man da auch nicht ran. Ergebnis: man ist darauf angewiesen, dass die Hersteller so gnaedig sind, eine Plattform zu unterstuetzen, und muss dann fuer legitimen Betrieb auf Binaries der Hersteller zurueckgreifen.
Wenn ich mir alleine die Liste der Plattformen, auf denen NetBSD laeuft (und fuer die es kein JDK gibt), wuerde ich mal sagen, dass Java (genauer: die vorhandenen Implementierungen) nicht besonders Plattformunabhaengig ist.
Klar, jeder kann sich hinsetzen und eine eigene JVM und eigene Libraries entwickeln, da gibt's ja auch schon ein paar Projekte. Nur duerfen die sich nicht Java nennen, weil Sun diktiert, was Java ist, und sich einer Standardisierung bis jetzt verweigert hat. Weil Sun die Kontrolle behalten will.
Vielleicht wird das alles mit dem JDK unter der GPL ja besser -- warten wir's ab.