Eclipse可以自动刷新资源吗?

Posted

技术标签:

【中文标题】Eclipse可以自动刷新资源吗?【英文标题】:Can Eclipse refresh resources automatically? 【发布时间】:2010-11-15 19:20:36 【问题描述】:

Eclipse(带有 PyDev 的 3.4.2)处理不同步资源(已在 IDE 之外编辑的文件)与我使用过的其他 IDE 不同,在这些 IDE 中,只有打开编辑器的资源才被认为是 out-不同步。在 Eclipse 中,任何资源都可能不同步。

这意味着当我在 Eclipse 之外更改任何文件后执行搜索时,我会收到一个错误对话框,告诉我文件不同步,即使它们没有打开的编辑器也是如此。据我所知,没有全局刷新命令,所以我不得不在错误对话框中读取项目名称(我有几个项目),并为每个项目执行右键单击+刷新。

我检查了Settings > General > Workspace 中的Refresh Automatically 设置,但这没有任何效果。有什么方法可以让 Eclipse 始终只从磁盘加载非活动资源?

【问题讨论】:

Eclipse 3.7+ 的最新答案在第二个答案中。 您甚至可以使用远程系统资源管理器 (RSE) 与远程文件同步 eclipse, refresh files edited by external editor的可能重复 @Boris,这个问题是几年前提出的。 other 应标记为 this 的副本。 【参考方案1】:

这个问题将在 Eclipse 3.7 (Indigo) 中得到修复。虽然“自动刷新”最终确实使资源重新同步,但刷新挂钩仅适用于 Windows,因此在 Linux 和 Mac OS 上,它必须定期轮询文件系统。

从 3.7 开始,有一个新的偏好 Settings > General > Workspace > Refresh On Access(又名轻量级刷新)。此首选项会导致 Eclipse 在发现资源“不同步”时自动刷新资源。在打开、读取或搜索文件时,将防止出现不同步错误。

另请参阅:https://bugs.eclipse.org/303517

【讨论】:

令人难以置信的是,这是一个选项。我从来没有刷新过我的不同步文件。 :(我长期努力反对让它成为一种选择。你说得对,这太疯狂了。 如果您希望此选项成为 Eclipse 3.8 / 4.2 中的默认选项,请在此处投票:bugs.eclipse.org/340977 我使用 IntelliJ IDEA。我永远不必担心保存文件,因为它们是自动保存的。它只是工作。如果磁盘上的文件发生更改,它在 IDE 中也会发生更改。当发生冲突时,它会警告您并允许您进行差异和合并。如果情况变得更糟,它具有本地历史记录,因此您可以随时恢复到几分钟前。 @ChristofferHammarström:Eclipse 也有本地历史记录:在文件编辑器中右键单击 > 比较 > 本地历史记录。【参考方案2】:

我认为如果您在项目资源管理器中单击项目节点并按 F5 或右键单击并选择刷新,该项目的所有资源都将被刷新。另外,如果你CTRL+点击多个项目,你应该可以同时刷新多个项目。

单击项目,按 CTRL+A 选择所有内容,按 F5 即可完成您需要的操作 - 刷新所有内容。

当我有机会时,我必须对此进行测试,但我相信这是我过去克服类似问题的方法。


我注意到这个答案经常被否决。我想指出,这个问题指的是 Eclipse 的特定版本:3.4.2。实际上没有自动方法来刷新不同步资源until version 3.7 Indigo of Eclipse,如in James Blackburn's answer 所述。此答案中描述的方法是在 3.4.2 版本(以及 3.7 Indigo 之前的任何其他版本)中实现此目的的唯一方法。

【讨论】:

请注意,如果其中任何一个已关闭,则刷新多个选定项目将不起作用 - 您需要先取消选择已关闭的项目。或者,当在 Package Explorer 或 Navigator 视图中选择 no 项目时,按 F5 将刷新所有打开的项目(按住 ctrl 单击取消选择,单击空白区域不起作用)。 无意冒犯任何人,但为什么对于如何让 Eclipse 自动执行某项操作的问题的公认答案是关于如何手动执行的说明? @Srekel 因为在发帖时,这是完成@DNS 想要做的事情的唯一方法。根据@James Blackburn 的最新回答,在最初发布此问题后,实际上已经报告并纠正了一个问题。对于 Eclipse 的更新版本,这个答案是不正确的。但是,该问题专门引用了 Eclipse 3.4.2 - 这是解决问题中提出的问题的方法。【参考方案3】:

不同步问题在 Eclipse IDE 中很常见,因此您必须检查此选项 windows -> 首选项 -> 工作区 -> 使用本机挂钩或轮询刷新。

【讨论】:

我相信这是目前正确的答案,至少自 Eclipse Mars 以来是这样。 这个复选框在 Ubuntu 14.04 上的 Eclipse 4.5 上对我不起作用。在对文件进行外部更改后,Eclipse 直到我在 Eclipse 中打开此文件或进行刷新时才看到它。因此,浏览器看不到.css 文件的更新,例如,如果我在从 Eclipse 运行服务器应用程序时从外部编辑器更新此文件。为了解决这个问题,我使用了this plugin,这使得复选框真正起作用。见this answer。 这是Neon.3 Release (4.6.3)版本的工作选项 在 Mac 上的 Neon.3 中,该选项位于 Preferences > General > Workspace > Refresh using native hooks or polling。【参考方案4】:

Eclipse Helios 在 Preferences > General > Workspace 拥有内置的刷新功能。它位于您禁用自动构建的同一位置。选择自动刷新。具有相同功能的插件是 Andrei Loskutov 的 Filesync 插件。更新站点地址为:http://andrei.gmxhome.de/eclipse/。在安装过程中,选择 Eclipse 3.5-3.7 插件 > FileSync。

【讨论】:

【参考方案5】:

鉴于 Java 7 有一个用于文件系统挂钩的 api,人们会认为在 Eclipse 中可以更好地处理刷新。

编辑:其实有一个插件使用了这种机制:https://github.com/psxpaul/EclipseJava7Refresher

【讨论】:

感谢插件。没有它,即使启用了“Window->Preferences->General->Workspace->Refresh using native hooks or polling”,我在 Ubuntu 上的 Eclipse 也看不到文件的外部更改。 这个插件即使在 Eclipse 2020-12 上也能很好地工作。在 MacOS (Big Sur) 和 Catalina 上刷新太慢了。使用外部编辑器(VSCode)中的这个插件更改需要大约 4 秒来触发 Eclipse 中的刷新/重建。 有一个 Eclipse 错误解决了 MacOS 和 Windows 上的本机刷新问题:bugs.eclipse.org/bugs/show_bug.cgi?id=108697 似乎非常接近。【参考方案6】:

有一个全局刷新 - 在包资源管理器中没有选择任何(或所有内容)并按 F5(或右键单击空白区域并选择刷新)。当然,如果您有大型项目,这可能需要相当长的时间。

【讨论】:

它不是自动的,但非常有效(+1)。【参考方案7】:

全局刷新实际上存在于纯 Eclipse 中,没有任何插件,也没有选择工作区中的每个项目。

基本上,您需要取消选择项目浏览器中的所有内容,然后按 F5。为此,请在项目资源管理器中按住 Ctrl 键并单击选定的资源,然后按 F5。

【讨论】:

【参考方案8】:

Eclipse 中确实缺少全局刷新。如果您的选择中包含已关闭的项目,则上述选择所有项目然后运行刷新(例如 F5)的过程将不起作用。这意味着,如果您像我一样关闭了许多项目中的 1/2,您会发现自己手动按住 Ctrl 键并单击数十个项目。这是相当痛苦的。我希望 Eclipse 能简单地忽略已关闭的项目。

【讨论】:

【参考方案9】:

也许你应该在 eclipse 网站上添加一个功能请求:

https://bugs.eclipse.org/bugs/

我认为添加自动刷新过时资源的首选项是个好主意。

【讨论】:

【参考方案10】:

是的,访问时刷新早就应该了……这些问题和类似问题的答案通常建议启用全局自动刷新,这对于大型远程项目来说可能需要一段时间。 事实上,有些人会说 Refresh on Access 应该是原始 (

【讨论】:

【参考方案11】:

我设法通过创建一个执行空白批处理文件的新“外部工具”运行配置来解决这个问题。在运行配置中,您可以让它在完成后刷新工作区。然后我使用实际宏创建了一个宏,它 1)执行最后一个外部工具运行配置(刷新工作区),然后 2)执行最后一个调试运行配置(运行我的应用程序)。如果取消选中“分配控制台”,则已完成的外部工具条目将不会显示在调试窗口中。

【讨论】:

【参考方案12】:

即使其他人提出的解决方案确实是正确的,你也有一个 Eclipse 的“Refresh All”插件。只需将 Update page 添加到您的 Eclipse 更新站点列表中即可将其安装到您的 IDE 中。

【讨论】:

当我点击这些链接时得到 404。这个项目还活着吗? 确实,这个项目似乎已经死了:(【参考方案13】:

启动有一个自动刷新文件的选项

Window -> Preferences -> General -> Startup and Shutdown -> Refresh workspace on startup

单击它以在 Eclipse 中“重新”启动。 :)

版本:Eclipse 4.12

【讨论】:

以上是关于Eclipse可以自动刷新资源吗?的主要内容,如果未能解决你的问题,请参考以下文章

解决eclipse 文件更新不自动刷新的问题

XCode 可以自动刷新/更新无效的“配置文件”吗?

手机怎么自动刷新网页

Oracle设置物化视图的自动刷新

WIN10 桌面无限自动刷新桌面?

自动刷新网页