6

我有一个eclipse indigo带有m2e 1.2.0.20120903-1050maven 插件的 maven 项目。该项目包含 mavensystem依赖项,并且这些 jar 文件被检入 git 存储库。

这一切都很好,直到我需要切换到另一个system依赖项发生变化的分支。由于文件被锁定,Git 无法更新内容。

这似乎是 eclipse 自己或代表 m2e 锁定 jar 库。我尝试关闭项目,但这无济于事,为了释放锁定,我必须重新启动 Eclipse。

那比较麻烦。是否有任何技巧可以在不重新启动 Eclipse 的情况下释放锁定?

4

6 回答 6

5

视窗

您可以handle.exehttp://technet.microsoft.com/de-de/sysinternals/bb896655.aspx手动使用

  1. handle.exe .jar通过 all 的 handle-id 和 process-id 为您提供一个列表jar's
  2. handle.exe -c <handle-id> -p <process-id>杀死句柄,可能会抛出异常,如果是这样,请向 Eclipse 的错误报告系统填写错误报告,让我们知道死锁。

编辑:

使用管理员权限执行命令很重要(感谢 Paulo Merson)。

于 2014-08-28T11:57:52.613 回答
3

这不是 Windows 的问题。这是 Eclipse 正在做的事情的问题。它在 Eclipse 运行时保持文件打开。这是一种可怕的做法。

于 2013-03-17T11:28:31.387 回答
2

您可以从 Microsoft 下载 Sysinternals Suite并使用handle.exeprocexp.exe程序来查找哪个程序在 jar 上具有句柄。在 Eclipse 中关闭句柄似乎是安全的(我没有注意到任何副作用)。

sysinternals 站点上记录了如何使用handle.exe,对于 procexp.exe,请使用Find -> Find Handle 或 DLL菜单选项。键入锁定的 jar 文件的名称,然后在子窗口中选择锁定过程。在主窗口中,它应该显示进程中文件的句柄,您可以检查该进程是否是您认为的进程,然后右键单击该句柄并选择Close Handle

您应该以管理员权限运行这两项任务。

网上也有其他指南:

于 2013-12-11T10:04:43.417 回答
1

我也有这方面的问题。事实证明,这是由 Windows 索引文件引起的。我使用的是 Windows 7。我去了控制面板并选择了索引选项。我确保删除了我的代码所在的任何文件夹。这解决了我的问题。

于 2014-04-09T17:51:47.307 回答
1

不,如果文件是打开的,git 不能删除它们。这是窗户的事情。

我建议您将它们安装在本地存储库中,而不是处理系统范围,

于 2013-02-20T22:09:53.923 回答
0

我在工作中使用 RAD(eclipse) 时遇到了同样的问题。在我的情况下,它发生在使用 JD-Eclipse (1.0.0) 插件反编译时。安装最新的 Eclipse Mars (4.5.1) 和 JD-Eclipse (1.0.0) 时没有问题。我怀疑工作时RAD版本中的eclipse(4.2.1)底层版本与JD-Eclipse(1.0.0)不兼容。

于 2015-11-18T21:39:05.900 回答