Eclipse正在保存打开的JAR文件的文件句柄。它使Git更新具有挑战性。我是最新的Eclipse Kepler,最近更新了(2015年1月)。
与此问题类似: Unlink of file failed
我似乎能够解决它的唯一方法是完全退出Eclipse,并从命令行执行git reset
或pull
,然后重新启动Eclipse。即使在Eclipse中关闭项目也无法正常工作。
我已经使用procexp.exe
来查看谁正在为JAR打开文件句柄,不幸的是,它本身就是Eclipse。更准确地说,是javaw.exe
的{{1}}子进程。应用服务器已关闭。
是否有更好的方法在Eclipse中使用EGit管理项目以避免此问题?
有没有人有解决方案?
这非常烦人,因为它在具有不同JAR文件版本的分支之间切换时阻止我使用IDE(甚至只是保持IDE打开!!)。
答案 0 :(得分:1)
我遇到了同样的问题,我认为我将它追溯到Eclipse-Groovy-Plugin(或者我必须使用的旧Groovy版本)导致这种情况,至少在我的情况下。
帮助我的是使用FileLeakDetector来获取属于被锁定文件的文件句柄的堆栈跟踪。这应该可以让您了解导致此问题的进程或插件。 这可能与this Eclipse Bug有关,{{3}}也包含使用FileLeakDetector的建议。
答案 1 :(得分:0)
你很可能在Eclipse中运行一个或多个程序。
底层JVM保持文件打开,然后git无法替换其内容,因为Windows不允许它。