Windows系统中,如何排查端口被谁占用了?
Windows系统中,如何排查端口被谁占用了?
【FAQ】Windows系统中,如何排查端口被谁占用了?
问题描述
当同时启动两个Tomcat时,会出现如下图的提示:

“Address already in use:JVM_Bind<null>:8080”,这是告诉你8080端口已被占用。
优先解决方案就是修改其中一个Tomcat的端口为其他端口。
但如果此时启动的Tomcat必须要使用8080端口,而我们又如何可以找到8080端口被什么应用占用了呢?
问题分析
分析Windows下常用命令,发现有两个命令可以帮助查找占用的程序。
(1)netstat命令可以查找占用端口的应用程序。

(2)Tasklist命令可以显示运行的进程列表,可以更加方便我们定位占用端口的应用程序。

解决方案
第一步
【输入】netstat-ano|findstr "8080"
【作用】查找8080端口占用的应用程序id号

最后一列102148就是占用8080端口的应用程序的id号。
第二步
【输入】tasklist|findstr "102148"
【作用】通过id号查询占用端口的应用程序

可看到占用8080端口的应用程序是java.exe。
第三步
在Windows任务管理器中查找应用程序:java.exe,结束该进程。

再次启动Tomcat就可以了。