我遇到了一个非常烦人的问题,想象一下我编译了 FooBar.java 文件:
$ javac FooBar.java
它编译成功,然后我像往常一样运行它:
$ java FooBar < in.txt
我得到了预期的输出,交易是,如果我更改源代码(FooBar.java)以打印其他内容并再次编译它,我会得到与第一次相同的输出!
这真的让我很生气...... javac 有缓存吗?即使我删除 FooBar.class 并重新编译,我也会从早期源代码中获得输出。我发现解决这个问题的唯一方法是删除 FooBar.java 并创建一个具有不同名称的新文件(我只是复制粘贴了代码),这是可行的。
这个错误(?)真的困扰着我。我已经寻找解决方案或解释为什么会发生这种情况,但没有运气。
这似乎与我的问题有关,但并不完全因为我没有使用任何 IDE 并且 Classpath 指向我的工作文件夹: http: //www.coderanch.com/t/519372/java/java/Executing-Old-Code
我想找出导致这种情况的原因,因为我不想每次更新源代码时都创建一个新文件......我在 Windows 上使用 Java 1.6.0_27
谢谢阅读...