JavaWeb之问题集(2) —— macOS下IDEA启动Tomcat报错:error=13, Permission denie 或 Socket closed
一. 问题描述
从Apache新下了一个Tomcat以后解压在目录下面,IDEA配上以后就准备开始启动,但是发现使用Debug启动项目的时候会报错无法启用端口。
然后我在设置里修改了Debug的端口号,然后再尝试,报错依旧,我想还能这么巧正好端口被占用了么?然后检查了对应端口,发现并没有被占用。
当我使用Run方式启动项目的时候,问题就暴露出来了:Permission denied 。文件目录权限不足。这是macOS/Linux使用过程中经常的问题了。
Debug:
Run:
二. 解决方案
既然已经发现问题所在,直奔主题好了。
启动终端,使用路径跳转命令到Tomcat的bin目录下。使用 ls -l
命令查看当前目录下文件的权限。
很明显,catalina.sh文件所有者并没有执行文件的权限,给.sh文件配置上可执行权限即可。
chmod 744 *.sh
注:如果出现zsh: no matches found无法解析 * 的报错,请使用命令 open ~/.zshrc 打开zsh的配置文件。
在文件最下面一行输入:setopt no_nomatch
,让chmod来解析 * 命令。保存配置文件,刷新配置:source ~/.zshrc
。
然后重启终端,再次来到bin目录下,执行chmod命令,为所有的.sh文件赋予执行权限。
执行完毕如下图:
之后无论Run还是Debug都是OK的了。