我在eclipse indigo
中有一个带有m2e 1.2.0.20120903-1050
maven插件的maven项目。该项目包含maven system
依赖项,这些jar文件被检入git repository。
在我需要切换到system
依赖关系发生变化的另一个分支之前,这一切都很好。当文件被锁定时,Git无法更新内容。
看来,eclipse本身或代表m2e锁定了jar库。我尝试关闭项目,但这没有帮助,为了释放锁定,我必须重启eclipse。
这很麻烦。有没有任何技巧可以在不重新启动eclipse的情况下释放锁定?
答案 0 :(得分:4)
您可以从http://technet.microsoft.com/de-de/sysinternals/bb896655.aspx
手动使用handle.exe
handle.exe .jar
根据所有jar's
的handle-id和process-id为您提供一个列表。handle.exe -c <handle-id> -p <process-id>
杀死Handle,可能会抛出异常,如果是这样,请将 bug-report 填入Eclipse的 bug-report-system 请让我们知道死锁。使用管理员权限执行命令非常重要(感谢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)不兼容。