我用Eclipse开发Java代码,经常收到这样的消息:

资源与文件系统不同步。

右键单击>刷新将始终清除此选项。

但是为什么Eclipse在发现这种情况时不能自动刷新呢?是否存在您希望资源不同步的情况?

如果存在这样的条件,而它们不适用于我的工作,那么是否有一种方法可以让Eclipse在遇到这种状态时自动刷新?(我认为,为了提高人类开发人员的性能,它应该尽可能少地刷新。)

更新(2012-06-25): 我的最新更新(版本:Indigo发布版本id: 20110615-0604) 不再显示 首选项—常规—工作空间—自动刷新 有一个选项“刷新访问”-我应该使用这个吗?


当前回答

一个小提示。该消息经常在重命名操作期间出现。对我来说,快速的解决方法是在消息确认后按Ctrl-Y(重做快捷键)。它只在重命名影响单个文件时有效。

其他回答

如果尝试删除文件夹(在*nix上)时出现这种情况,并且刷新不起作用,请打开终端并在您试图删除的文件夹下面查找符号链接并手动删除该符号链接。这解决了我的问题。

只需右键单击文件或项目,然后单击刷新。错误将会消失。我也遇到过同样的问题,这对我很有效。

这种事经常发生在我身上。

转到错误日志,找到异常,并打开几个级别,直到您可以看到更像是根本原因的内容。是否显示“资源与文件系统不同步”?

当然,在重命名包时,Eclipse必须在文件系统中移动文件。显然发生的事情是,它后来发现它认为需要清理的某些东西被重命名了,找不到它,抛出一个异常。

有几件事你可以尝试一下。首先,选择“窗口:首选项,工作空间,并启用“自动刷新”。理论上,这应该能解决问题,但对我来说,并没有。

其次,如果您正在使用子包进行大型重构,那么从下往上一次只执行一个子包,并在重命名每个子包后显式地使用文件系统刷新。

第三,忽略错误:当出现错误对话框时,单击Abort以保留部分更改,而不是将其回滚。一次又一次地尝试,您可能会发现您可以通过多次重试来完成整个操作。

一个小提示。该消息经常在重命名操作期间出现。对我来说,快速的解决方法是在消息确认后按Ctrl-Y(重做快捷键)。它只在重命名影响单个文件时有效。

对于新的Indigo版本,首选项更改为“访问时刷新”,并有详细的解释:通过工作空间访问时自动刷新外部工作空间更改。

由于“资源与文件系统不同步”,当我使用外部工作空间时发生了这个问题,所以在我选择这个选项后,问题解决了。