当我编译程序时,基于先前编译的代码版本,我得到一个错误/异常/输出。这从未发生过。
我删除了所有类文件并重新编译了源代码。现在,我得到了适当的输出。为什么会这样?
202 // System.out.println("recursion!!");
203 // System.out.flush();
204 // add primitives to left child
205 left.objects = new WorldObject[leftPrimitives.size()];
206 for (int idx = 0; idx < left.objects.length; idx++) {
207 left.objects[idx] = leftPrimitives.get(idx);
208 }
该代码段是实用程序类的一部分。
some / path / src / misc / utility.java ::上面指定了代码的实用程序类位置
some / path / src / main.java :: Java程序的主类。
要编译
javac main.java
当前目录为src /
程序不应打印“递归!”。但是该程序会打印递归!并退出,尽管它已被注释掉。先前版本的源代码没有注释打印语句。
我检查了此处发布的问题: Java compiler is using old version of source code
但是当我在删除所有类文件后尝试运行该程序时,该程序无法运行。其次,当我编译程序时,main.class的最后修改时间被更新,而utitlity.class的最后修改时间未更新。在上述URL中,由于Java源代码已被编译且类文件已在预期的位置创建,因此无法再次回答。