Eclipse保持JAR文件打开,导致git checkout / reset失败

时间:2014-09-12 15:23:56

标签: eclipse git egit

Eclipse正在保存打开的JAR文件的文件句柄。它使Git更新具有挑战性。我是最新的Eclipse Kepler,最近更新了(2015年1月)。

与此问题类似: Unlink of file failed

我似乎能够解决它的唯一方法是完全退出Eclipse,并从命令行执行git resetpull,然后重新启动Eclipse。即使在Eclipse中关闭项目也无法正常工作。

我已经使用procexp.exe来查看谁正在为JAR打开文件句柄,不幸的是,它本身就是Eclipse。更准确地说,是javaw.exe的{​​{1}}子进程。应用服务器已关闭。

是否有更好的方法在Eclipse中使用EGit管理项目以避免此问题?

有没有人有解决方案?

这非常烦人,因为它在具有不同JAR文件版本的分支之间切换时阻止我使用IDE(甚至只是保持IDE打开!!)。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我认为我将它追溯到Eclipse-Groovy-Plugin(或者我必须使用的旧Groovy版本)导致这种情况,至少在我的情况下。

帮助我的是使用FileLeakDetector来获取属于被锁定文件的文件句柄的堆栈跟踪。这应该可以让您了解导致此问题的进程或插件。 这可能与this Eclipse Bug有关,{{3}}也包含使用FileLeakDetector的建议。

答案 1 :(得分:0)

你很可能在Eclipse中运行一个或多个程序。

底层JVM保持文件打开,然后git无法替换其内容,因为Windows不允许它。