Lors de l'utilisation du même JDK (c'est-à-dire le même javac
exécutable), les fichiers de classe générés sont-ils toujours identiques ? Peut-il y avoir une différence en fonction de l'option système d'exploitation o matériel ? Hormis la version du JDK, d'autres facteurs peuvent-ils être à l'origine de ces différences ? Existe-t-il des options de compilation permettant d'éviter les différences ? Une différence n'est-elle possible qu'en théorie ou la solution d'Oracle est-elle la bonne ? javac
produit en fait des fichiers de classe différents pour les mêmes options d'entrée et de compilateur ?
Mise à jour 1 Je m'intéresse à la génération Le fichier de classe ne doit pas être considéré comme un fichier de sortie du compilateur, mais comme un fichier de classe qui peut être utilisé comme un fichier de sortie du compilateur. courir sur différentes plateformes.
Mise à jour 2 Par "même JDK", j'entends également le même javac
exécutable.
Mise à jour 3 Distinction entre la différence théorique et la différence pratique dans les compilateurs d'Oracle.
[EDIT, ajout de la question paraphrasée].
"Quelles sont les circonstances dans lesquelles le même exécutable javac, lorsqu'il est exécuté sur une plate-forme différente, produira un bytecode différent ?"