有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Eclipse无法清理生成输出

我有一个Eclipse(4.4.1)工作集,由大约60个项目组成(数量可能相关,因为刷新工作区需要更多时间)。有时,我会遇到构建失败,因为Eclipse无法在构建之前清理输出文件夹:

Eclipse build problem

事实证明,锁定文件的过程是Eclipse本身:

enter image description here

结果还表明,被锁定的文件总是XML内容。特别是,如果我将扩展名为*.foo的资源定义为XML文件(通过首选项->;常规->;内容类型),那么一旦复制到输出路径,它们也很有可能被锁定

我认为问题是由自动验证所有XML资源引起的:

enter image description here

--因此,我首先添加了排除过滤器,甚至完全禁用了XML/XSD验证。这个问题不再经常发生,但仍不时出现。刷新或关闭或重新打开项目没有帮助

唯一的补救办法是重新启动Eclipse或每1/2小时运行一次Unlocker,这不是很方便

有没有办法解决或至少进一步诊断这个问题


共 (5) 个答案

  1. # 1 楼答案

    我不熟悉这个问题,但我会用以下方式解决这个问题:

    1. 下载File Leak Detector
    2. 将代理路径添加到eclipse中。ini(例如。, -javaagent:路径/到/文件泄漏检测器。jar=http=19999,参见文件泄漏检测器的文档)
    3. 当问题再次出现时,请查看哪个(eclipse)类负责保存文件句柄
    4. 找出持有句柄的类的用途是什么

    通过这种方式,您可能能够确定导致问题的Eclipse特性

  2. # 2 楼答案

    假设XML验证是问题的主要原因,我建议您在项目配置中扩展对验证点的搜索,以抵消所有验证点:

    • 一般偏好/验证
    • 常规首选项/XML/XML文件/验证(“尊重所有架构位置”选项可能会导致验证延迟)
    • 项目首选项/验证(选中它们;可能会覆盖常规首选项)
    • 项目首选项/构建器/验证器

    希望能有帮助

  3. # 3 楼答案

    只要我的2美分

    也许您可以通过以下步骤解决此问题:

    1. 项目->;房地产->;建筑商->;新->;节目
    2. 定义一个自定义的“Cleaner”程序,例如解锁或您自己的Java或CMD脚本
    3. 向上移动自定义生成器程序它应该是列表中的第一个生成器

    p.S.有时我也会因为Avira防病毒扫描程序而遇到类似的问题

  4. # 4 楼答案

    禁用第三方版本控制守护程序。(比如TGitCache)

    它们只锁定资源一小段时间,在Process Explorer中不可见,但却是导致此类故障的最常见原因

  5. # 5 楼答案

    我也经历过类似的问题。是的,项目数量可能是原因。关闭未使用的项目。如果这样做可以解决问题,那么将相关项目组移动到单独的工作空间应该会对您有所帮助

    即文件->;关闭项目