Tomcat 启动时报 java.net.BindException: Address already in use[localhost:8005]

1、背景
在本地通过命令行 ./bin/catalina.sh run & 启动 tomcat 时,发现无法启动,提示 8005 端口被占用。

2、报错信息

30-May-2019 17:09:30.762 严重 [main]
org.apache.catalina.core.StandardServer.await StandardServer.await:
create[localhost:8005]: java.net.BindException: Address already in
use at java.net.PlainSocketImpl.socketBind(Native Method) at
java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
at java.net.ServerSocket.bind(ServerSocket.java:375) at
java.net.ServerSocket.(ServerSocket.java:237) at
org.apache.catalina.core.StandardServer.await(StandardServer.java:440)
at org.apache.catalina.startup.Catalina.await(Catalina.java:776) at
org.apache.catalina.startup.Catalina.start(Catalina.java:722) at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497) at
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:353) at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:493)

3、分析解决
通过命令 sudo lsof -i:8005 查看 8005 端口被谁占用了,输出结果:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 89706 meizu 68u IPv6 0x6dd97d01bd180127 0t0 TCP
localhost:8005 (LISTEN)

通过命令 kill 89706 杀掉对应进程,其中 89706 为步骤 1 中查到的占用 8005 端口的进程 ID
再次通过命令 ./bin/catalina.sh run & 启动 tomcat,启动成功;通过这条命令启动时,可以看到 tomcat 启动过程中的 log 信息,有利于分析 tomcat 启动失败的原因
结果
通过访问 http://localhost:8080/ 地址,确认 tomcat 是否启动成功,如果看以下界面,表示启动成功了~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无敌的黑星星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值