Java编译器正在使用旧的源代码或未覆盖旧的类文件

时间:2019-01-08 04:07:11

标签: java

当我编译程序时,基于先前编译的代码版本,我得到一个错误/异常/输出。这从未发生过。

我删除了所有类文件并重新编译了源代码。现在,我得到了适当的输出。为什么会这样?

    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源代码已被编译且类文件已在预期的位置创建,因此无法再次回答。

0 个答案:

没有答案