Eclipse 不会刷新包资源管理器视图中的项目文件

2022-09-04 06:48:36

今天,我在3个月内第一次看到Eclipse 3.5.2的奇怪行为。

首先,当我运行一个 main 函数时,它会运行一个以前编译的版本。假设我在窗口中按Ctrl+ F11,其中包含一个打开的java类和现有的main函数。通常,它会重新生成类并运行新版本。今天,即使有编译错误,它也会运行良好。所以我想它不会重新编译类。

接下来,更奇怪的是,如果我故意在代码中犯了一个错误,并且Eclipse用红色下划线标记这些行,那么项目资源管理器仍然没有将它们标记为包含错误。如果没有任何错误,它们仍然是灰色的。

首先,我不知道如何解决这个问题。我试图重新打开项目,重新启动Eclipse,最后重新启动操作系统。在第十次尝试之后,在重新启动后,Eclipse说所有项目的文件都“与文件系统不同步”。当我在项目资源管理器中按项目标题名称上的“刷新” - F5时,它最终将所有有错误的文件标记为包含错误,并运行main函数给出了所需的结果。

我工作了一个小时,这种情况再次发生,另一个项目。都是一样的。无需将文件标记为红色,无论哪个旧版本的类都运行,没有编译错误。

由于 Eclipse 不会告知文件不同步,因此在项目上按 F5 就无济于事了。

你有什么建议?


答案 1

在“项目资源管理器”视图中选择一个项目并按 F5 时,Eclipse 遍历该项目的整个目录树,检查所有文件和目录是否全部同步。它对我来说...

我唯一能想到的会导致这不起作用的是,如果你有文件系统时间戳异常。例如,如果文件系统中的某个文件已更新,但该文件的上次修改时间显示该文件在过去已更新。如果机器的系统时钟在不方便的时间向后或向前移动,就会发生这种事情。如果您认为这种情况可能已经发生,请尝试关闭所有项目,重新启动 Eclipse 并执行另一次 F5 刷新。

(我曾经经常遇到 Eclipse 同步问题,但我把它归结为 flakey 插件和从命令行进行构建的组合。F5 或 Project>Clean 通常适用于我。


还值得检查的是,您没有关闭“自动构建”;请参阅 https://stackoverflow.com/a/2818290/139985。这不是一个“刷新”问题,但很容易将其与一个问题混淆。


答案 2

“生成”是否自动打开?(Menu > Project > Build automatically)


推荐