避免“资源与文件系统不同步”


267

我使用Eclipse开发Java代码,并定期收到以下消息:

资源与文件系统不同步。

右键单击>刷新将始终清除此设置。

但是,为什么Eclipse发现这种情况后不能自动刷新?在某些情况下,您希望资源不同步吗?

如果存在这样的条件并且它们不适用于我的工作,那么是否有办法让Eclipse在遇到此状态时自动刷新?(我赞赏它应该刷新到正常开发所需的时间,以提高人类开发人员的性能。)

更新(2012-06-25):我的最新更新(版本:Indigo发行版本ID:20110615-0604)不再显示首选项-常规-工作区-自动刷新有选项“访问时刷新”-我应该使用此选项吗?


为什么收到消息?如果不小心,您可能会失去工作。
托尔比约恩Ravn的安德森

1
我搜索工作空间时总是收到此消息,因为服务器项目(在Web工具中)包含日志文件,这些文件在eclipse之外不断更新。到目前为止,除了“自动刷新”之外,我还没有找到其他解决方案,但这给了其他问题(特别是:当某些Ant构建运行时,Eclipse将刷新Ant构建的一半并将其弄乱)。
Stijn de Witt 2014年

也许只是在项目上右击然后选择“刷新”?
Junchen Liu

愚蠢的问题:为什么必须“额外复制”资源?每个人肯定都需要这样做,并伴随着“不同步”的机会。
nsandersen '16

Answers:


322

您可以在“窗口”“惯用选项”“常规”“工作区”“自动刷新”中启用此功能(使用本机挂钩或在较新版本中进行轮询称为“ 刷新”

Eclipse首选项“使用本机钩子或轮询刷新”-屏幕截图

我可以认为为什么默认情况下不启用此功能的唯一原因与性能有关。

例如,自动刷新源文件夹可能会触发工作空间的构建。也许有些人想要对此进行更多控制。

Eclipse站点上还有一篇有关自动刷新的文章。

基本上,没有外部触发器可以将工作空间外部更改的文件通知Eclipse。Eclipse而是使用后台线程来监视文件更改,这些更改可能导致大型工作区出现性能问题。


+1是否仅在这种情况下发生?还是会发生足以影响我其他地方的事情?
peter.murray.rust

1
我具有首选项-常规-工作区-自动刷新。一样吗
peter.murray.rust

1
有没有办法让它自动接受文件系统中未保存未保存更改的打开编辑器窗口的更改?
2011年


14
现在,它似乎被称为“使用本机钩子或轮询刷新”(Indigo SR1)。
奥利弗·博克

37

只需右键单击文件或项目,然后单击刷新。该错误将消失。我也面临同样的问题,它对我有用。


20
检察官在他的问题中提到:“'刷新'将始终清除此问题。” 问题在于,当处理复杂的项目或与Eclipse外部的正在更改文件系统的工具一起使用时,这非常令人讨厌。
ryanbrainard '10


12

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

由于“资源与文件系统不同步”,因此在使用外部工作空间时会发生此问题,因此,选择此选项后,问题得以解决。


1
这摆脱了信息。谢谢
lsaffie 2014年

5

这一直在我身上发生。

转到错误日志,找到异常,然后打开几个级别,直到您看到更多类似的根本原因为止。是否显示“资源与文件系统不同步”?

当然,重命名包时,Eclipse必须在文件系统中移动文件。显然发生的事情是,它后来发现它认为需要清除的内容已被重命名,找不到,引发异常。

您可以尝试几种方法。首先,转到窗口:首选项,工作区,然后启用“自动刷新”。从理论上讲,这应该可以解决问题,但对我而言,不是。

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

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


此后,我的一些导入已损坏,但是快速的Organize Imports也解决了该问题。
z0r14年

将类移动到新包时,我需要执行此操作(忽略错误并重试)。
z0r14年

1

如果发生这种情况,尝试删除文件夹(在* nix上)而“刷新”无济于事,请打开终端并在您要删除的文件夹下查找符号链接,然后手动删除。这解决了我的问题。


1

从明文视图中打开Eclipse工作区并尝试重命名项目时,通常会出现弹出警告...“资源'项目'与文件系统不同步”。如果刷新项目不能解决问题,请执行以下解决方法:打开工作区,而不必进入视图b。在项目资源管理器中选择项目c。d。ClearCase->关联项目(项目现在应该看起来像项目[])。右键单击项目->刷新(vob子文件夹现在应该为空)。右键单击项目->重命名... f。输入新名称

现在,您可以关闭工作空间,在视图中重新打开它并刷新项目。如果您不希望该项目与VOB无关,则也可以取消该项目的关联。


Clearcase偷了我的狗。
Dominic Cerisano '16

1

一点提示。该消息通常在重命名操作期间出现。对我来说,快速的解决方法是Ctrl-Y在确认消息后按(重做快捷方式)。仅当重命名影响单个文件时,它才起作用。


怎么Ctrl-Y办?
z0r14年

1
Ctrl-Y为“重做”。在这种特殊情况下,您重命名某些内容,然后eclipse遇到问题并撤消重命名操作。按Ctrl-Y恢复重命名尝试。
沃森2014年

啊,我明白了。不在Ubuntu中;是Ctrl-Shift-Z。考虑添加对为什么按Ctrl-Y的答案的解释:)
z0r

1

如果您是Eclipse的普通用户,则可能多次遇到此错误。错误只是说:“您已经从eclipse外部更改了工作区中的文件”。最简单的解决方案是选择项目,然后按F5(右键单击->刷新)。

如果您需要更多说明,可以从该网站上阅读


0

我无法通过刷新或打开“本机轮询”工作区功能来解决此错误。原来我的项目也在两个Eclipse实例中打开过。一旦我关闭了另一个实例,错误就消失了。因此,如果看到此错误,请确保仅在一个位置打开项目。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.