You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins项目构建报错:文件被其他进程占用无法访问

解决Jenkins Master节点清理工作空间时的文件占用错误

我之前在Windows环境跑Jenkins时也碰到过一模一样的问题!这种"The process cannot access the file because it is being used by another process"的错误,大多是文件句柄没被及时释放导致的,给你几个亲测有效的解决思路:

1. 先定位占用文件的进程

首先得搞清楚到底是谁在拿着app.properties不放:

  • 用Process Explorer(微软Sysinternals工具)搜索文件名app.properties,能直接看到对应的进程ID和名称,非常直观
  • 或者用Windows自带的资源监视器:打开任务管理器 → 性能选项卡 → 打开资源监视器 → 搜索文件名,找到占用的进程
  • 要是习惯命令行,可以用handle.exe工具(同样来自Sysinternals),执行命令:
    handle.exe D:\Jenkins\jobs\App\workspace\app\app.properties
    
    注意:很多时候是Jenkins自身的子进程没彻底退出,或者某个构建插件(比如Maven、Ant)没正确关闭文件流。

2. 调整Jenkins的清理时机和方式

  • 给清理加延迟:在清理工作空间的步骤前,加一段Windows命令让构建暂停几秒,给进程足够时间释放文件:
    timeout /t 5 /nobreak
    
  • 改用Workspace Cleanup插件的高级配置:如果用了这个插件,试试勾选"Delete workspace when build is done",或者把"Clean before build"的时机调整为构建开始前的更早阶段,避免和刚结束的构建进程冲突。

3. 检查Jenkins服务的运行配置

如果Jenkins是作为Windows服务运行的:

  • 尝试把服务的登录账户改成本地管理员账户,而不是默认的Local System账户,有时候权限隔离会导致文件句柄无法释放
  • 临时重启Jenkins服务,强制释放所有被占用的文件,再重新触发构建,这招在紧急情况下特别管用。

4. 排查构建脚本的问题

看看你的构建脚本有没有潜在的文件句柄泄漏:

  • 比如bat脚本里用了type或者其他读取文件的命令后,有没有没正确关闭的情况?
  • 如果是Java/Maven构建,检查项目代码或者构建配置里,有没有打开app.properties后没关闭输入流的情况?

额外小提示

如果以上方法都不行,可以临时关闭Windows实时保护(只做测试用!),确认是不是杀毒软件在扫描文件导致的占用;或者尝试把Jenkins工作空间迁移到非系统盘,有时候系统盘的文件锁定机制更严格。

内容的提问来源于stack exchange,提问作者Priyanka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:37:39