我正在使用javac编译器,我发现它产生不同的结果二进制.class文件,具体取决于作为参数传递的源文件的顺序。事实上,这是用ANT或MAVEN编译的问题,因为他们以不同的方式对文件进行排序。
在2个编辑之间存在差异。我已经反汇编了代码,我发现javac(优化器?)正在从其中一个编译中删除已弃用的java jsr / ret汇编指令。
我想知道这种行为是否是“隐式”编译的结果: http://docs.oracle.com/javase/1.5.0/docs/tooldocs/solaris/javac.html#searching
任何人都可以解释这种行为吗?
如何在ANT和MAVEN中生成“幂等”编译过程,其中传递给编译器的源文件的顺序无关紧要?
答案 0 :(得分:0)
您可以获取源列表,然后按字母顺序对其进行排序,包括完整路径。这将使运行之间保持一致。