Ubuntu下IntelliJ运行项目报错:无法创建/logs目录
解决Spring项目启动时无法访问/logs目录的权限问题(Ubuntu + IntelliJ环境)
针对你遇到的ApplicationContextException报错,核心原因是Tomcat进程没有/logs目录的读写权限,即便目录已存在,以下是可行的解决方案:
检查并调整目录权限
- 先查看/logs目录的权限详情:
ls -ld /logs - 如果目录所属用户不是当前登录用户,执行命令修改所属关系:
sudo chown -R $USER:$USER /logs - 调整目录权限确保进程可读写:
注:如果需要写入权限,可改为sudo chmod -R 755 /logs775,避免使用777(存在安全风险)。
- 先查看/logs目录的权限详情:
改用项目内相对路径存储日志
修改Spring配置文件(application.properties或application.yml)中的日志路径配置,将绝对路径/logs改为项目根目录下的相对路径:- properties格式:
logging.file.path=./logs - yml格式:
logging: file: path: ./logs
这种方式会在项目目录下生成logs文件夹,权限继承自当前用户,大概率能避免权限问题。
- properties格式:
检查IntelliJ运行配置的用户权限
打开IntelliJ的「Run/Debug Configurations」,确认是否勾选了「Run as administrator」或其他特殊用户选项。如果有,取消勾选,使用当前登录用户运行项目,避免进程权限与目录权限不匹配。排查AppArmor权限限制
Ubuntu默认启用AppArmor,可能会限制Tomcat访问根目录下的文件夹:- 临时关闭AppArmor测试:
sudo systemctl stop apparmor - 重启项目验证是否正常。如果恢复,需要为Tomcat添加AppArmor规则,或者将日志目录移至AppArmor允许访问的路径下。
- 临时关闭AppArmor测试:
内容的提问来源于stack exchange,提问作者miguel Guerreiro
相关产品推荐
相关产品推荐

