我在eclipse中运行应用程序时遇到问题。我做了一些这样的编辑:
String res = "newvalue";
System.out.println(res);
但是当我运行应用程序时,我仍然在输出中收到“oldvalue”。在此之后我尝试删除main()函数 - 我运行应用程序,然后再次在输出中看到“oldvalue”。
也许它是JVM中的一些缓存,或者是smth。别的?
UPD:
现在我的时钟已经是15:35了。但是在/ bin文件夹中,我看到了带有14:33时间戳的.class文件。我更改源文件(.java),在eclipse中按ctrl + f11,/ bin文件夹中的文件仍然是14:33 ......
UPD2:
清理项目后,我收到以下问题:
项目未构建,原因是“无法写入文件:D:\ projects \ NelderMead \ bin \ ru。”。解决问题,然后尝试刷新此项目并构建它,因为它可能不一致
解
问题是eclipse无法将文件写入带有空格和UTF字符的文件夹中。所以,我将项目复制到新的干净工作区,它运行没有问题!谢谢所有人帮忙发现问题!
答案 0 :(得分:5)
您正在执行较旧的类文件,原因可能是
其他地方的编译错误(请参阅问题视图)
或您意外更改了源路径,以便不再编译新源。
尝试清理项目并确保将新类编译到输出文件夹。 JVM没有类文件的缓存。
答案 1 :(得分:2)
首先,确保文件已保存(选项卡中文件名旁边没有星号)。通常文件会自动保存,但您可以选择不保存文件而从不会错误地询问,这是Eclipse第一次弹出此对话框。
然后查看问题视图中发生了什么。您可能会看到project cannot be built due to the following reason
之类的内容。这可能是因为依赖项目中的编译错误。