eclipse锁定jar文件

时间:2013-02-20 22:05:16

标签: java eclipse m2e eclipse-indigo

我在eclipse indigo中有一个带有m2e 1.2.0.20120903-1050 maven插件的maven项目。该项目包含maven system依赖项,这些jar文件被检入git repository。

在我需要切换到system依赖关系发生变化的另一个分支之前,这一切都很好。当文件被锁定时,Git无法更新内容。

看来,eclipse本身或代表m2e锁定了jar库。我尝试关闭项目,但这没有帮助,为了释放锁定,我必须重启eclipse。

这很麻烦。有没有任何技巧可以在不重新启动eclipse的情况下释放锁定?

6 个答案:

答案 0 :(得分:4)

您可以从http://technet.microsoft.com/de-de/sysinternals/bb896655.aspx

手动使用handle.exe
  1. handle.exe .jar根据所有jar's的handle-id和process-id为您提供一个列表。
  2. handle.exe -c <handle-id> -p <process-id>杀死Handle,可能会抛出异常,如果是这样,请将 bug-report 填入Eclipse的 bug-report-system 请让我们知道死锁。
  3. 编辑:

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

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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

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

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

网上还有其他指南:

答案 3 :(得分:1)

没有。如果文件是打开的,git无法删除它们。这是一个windows的东西。

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

答案 4 :(得分:1)

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

答案 5 :(得分: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)不兼容。