方法一
netstat -ano | findstr :1099
这将列出正在使用1099端口的进程的相关信息,包括进程ID(PID)。
查找使用1099端口的进程ID,并记下该进程的ID号。
输入以下命令并按Enter键执行,其中PID是你在上一步中找到的进程ID:
taskkill -f -pid 端口对应的pid
这将强制结束使用1099端口的进程。
重新输入以下命令并按Enter键执行,以确保1099端口已经关闭:
netstat -ano | findstr :1099
如果这个找不到端口,则试试方法二
方法二
上网查了一下,说是系统会预留一些端口为其他应用提供服务,可是我昨天还成功运行了呀,好吧听你的,从网上找了查询预留端口的命令:
netsh interface ipv4 show excludedportrange protocol=tcp
果然,我的 8045-8144
这个期间的端口都被预留了,这怎么办?后面打开我以前记录各种报错信息的笔记,发现这个问题原来我之前遇到过,并且已经解决了,解决方式如下:
重启winnat服务,重置TCP Port缓冲区
打开命令窗口(这里必须是管理员身份),输入下面的命令:
net stop winnat
net start winnat
再次使用查看预留端口的命令,可以看到刚刚那么多预留的端口已经被清空了,打开IDEA,美美的启动,成功!舒服啊~~:
总结:
- 先使用常规手段
netstat -ano | findstr "端口号"
(这个 " "可以不要),查看端口占用情况,如果端口被占用,查看后面占用程序的pid,然后可以使用命令taskkill -f -pid 端口对应的pid
杀死进程,也可以使用tasklist|findstr "pid号"
查询到低是哪个程序在占用端口,然后在任务管理器中结束进程。 - 如果常规手段不可用,即查询时发现没被占用,那么使用上面的命令
netsh interface ipv4 show excludedportrange protocol=tcp
,查看端口是否被预留了。如果被预留了,要么重启笔记本,要么重启winnat TCP Port的缓冲区(推荐这种,不用重启笔记本当然更好)。