SpringBoot项目启动报错:无法启动Web服务器,提示C:\WINDOWS\TEMP目录不存在
报错原因
核心错误是Spring Boot内嵌Tomcat运行时需要的系统临时目录不存在,或当前用户无该目录的访问权限:
- Tomcat默认会使用Windows系统的
C:\WINDOWS\TEMP目录存储运行时的session持久化文件、上传临时缓存、服务运行临时文件等数据 - 触发该错误的常见场景包括:该目录被系统清理工具/手动删除、当前登录账户没有该目录的读写权限、系统TEMP/TMP环境变量被修改指向了不存在的路径
解决方案
按优先级可选择以下任意一种方案:
方案1:修复系统默认临时目录
- 打开资源管理器进入
C:\WINDOWS\路径,检查是否存在TEMP文件夹,不存在则手动新建同名文件夹 - 右键
TEMP文件夹→「属性」→「安全」,确认当前运行程序的用户拥有该目录的读取、写入、修改权限,权限不足则手动添加对应权限 - 重启Spring Boot应用即可正常运行
方案2:自定义Spring Boot临时目录(更稳妥,避免系统目录权限问题)
可以通过配置指定应用专属的临时目录,无需依赖系统公共临时目录:
配置文件方式
在项目的application.properties中添加如下配置:
# 配置Tomcat基础目录,启动时会自动在项目根目录创建tmp文件夹作为临时目录 server.tomcat.basedir=./tmp
如果使用application.yml,配置如下:
server: tomcat: basedir: ./tmp
启动参数方式
启动应用时添加JVM启动参数指定临时目录路径:
-Djava.io.tmpdir=D:/custom-spring-tmp
方案3:关闭Session持久化
如果你的应用不需要持久化Session数据,可以直接关闭该特性,跳过临时目录校验:
在application.properties中添加配置:
server.servlet.session.persistent=false
内容的提问来源于stack exchange,提问作者Dr.Joe
相关产品推荐
相关产品推荐

