Taz, ton post n'est peut-être pas trolleux, mais de mon point de vue, il déborde pas mal sur la mauvaise foi.
Sun ne peut pas garantir que le portage de toutes les applications Java se fera sans recompilation, tout simplement parce que même en Java, il est assez facile décrire du code dépendant de la plate-forme. Certes c'est plus difficile qu'en C ou en C++ (où là, pour le coup, c'est difficile d'écrire du code non-dépendant de la plate-forme), mais c'est possible.
Un seul exemple, trivial : dans ton appli, il y a du code natif, écrit en C ou en C++ : à tous les coups, il faudra recompiler et faire des adaptations dans cette partie-là. Et ces adaptations peuvent impacter le code Java.
Pour avoir développé pendant plusieurs années sur du logiciel système portable multi-Unix/Windows NT, écrit en C, C++ et un peu en Java, je connais la difficulté d'obtenir du code parfaitement portable, réellement indépendant du boutisme et de la taille de l'int du processeur. Et je peux te dire que le travail de portage d'un soft de l'ordre du million de lignes de code, au lieu de durer des mois et des mois à plusieurs personnes s'il est écrit en C/C++ (même propre), dure à peine quelques jours à une seule personne s'il est écrit en Java.