在Linux中,我们都知道使用 lsof -i :8080,这种方式去查看端口被哪个进程占用,然后kill掉就行。但是在windows中该怎么办呢?
问题起因
我在执行一个测试类,它使用到8090端口做websocket连接。但是测试类报错,提示 Address already use…。
这个很明显是8090端口被占用导致的,那么到底是哪个进程在占用?
这就得查看端口占用情况,打开cmd输入命令。
解决方法
下面提供多个方法:
1、查看所有端口占用情况:
netstat -ano
2、查看指定端口占用情况(端口引号有没有都可以,此处以8090为例):
netstat -aon|findstr 8090
or
netstat -aon|findstr "8090"
记住最后一列数字PID,此处为23960。
3、根据PID查看相应的进程或程序:
(1)命令行查看:
tasklist|findstr 23960
查看到该PID对应的程序为java.exe。
(2)任务管理器查看:
快捷键Ctrl+Alt+Delete,打开任务管理器,可查看PID对应的进程。
4、结束相应进程:
(1)命令行:
taskkill /f /t /im 进程名
我执行的就是:
taskkill /f /t /im java.exe
(2)任务管理器中结束进程。
其实,我的那个Java程序就是我的项目启动了,没有关闭就去执行测试类导致的。