Is the creation of Java class files deterministic?
When using the same JDK (i.e. the same javac executable), are the generated class files always identical? Can there be a difference depending on the operating system or hardware ? Except of the JDK version, could there be any other factors resulting in differences? Are there any compiler options to avoid differences? Is a difference only possibly in theory or does Oracle's javac actually produce different class files for the same input and compiler options? Update 1 I'm interested in the generation , i.e. compiler output, not whether a class file can be run on various platforms. Update 2 By