一、错误表现
我们在使用IDEA启动项目时,常常会遇到错误提示:Web server failed to start. Port 20003 was already in use,如下图所示:

二、什么原因导致?
其实导致这个错误的原因简单来说就是当前项目要使用的端口已被其它进程或应用程序占用,无法被当前的进程或应用程序使用。这可能是由以下几个具体原因导致的:
-
其他应用程序正在使用该端口:在同一台计算机上,可能有多个应用程序需要使用网络连接。如果两个或多个应用程序尝试绑定到相同的端口上,后启动的应用程序将无法绑定成功,从而导致端口被占用。
-
之前的应用程序没有正确关闭:如果之前运行的应用程序没有正常关闭或崩溃了,它可能会继续保持对端口的占用状态。在这种情况下,重新启动应用程序时,可能会提示端口被占用。
-
系统服务或进程正在使用该端口:有些操作系统服务或进程可能会占用一些固定的端口,以完成特定的功能。例如,Web 服务器默认使用的端口号是80(HTTP)或443(HTTPS),这些端口可能会被系统自带的 Web 服务器或其他相关服务占用。
-
网络连接异常:在某些情况下,网络连接异常或错误配置可能导致端口被占用。例如,当网络连接不稳定时,可能会导致端口无法正常释放。
三、如何解决?
提示端口被占用,通常有如下几种解决方案:
1.更换端口
在你的项目配置文件中修改当前项目的端口,选择一个未被占用的端口。例如,将.yml配置文件中默认的端口 8080 修改为其他数字,如 8081。代码如下所示:
# 服务器的配置
server:
# 服务占用的端口
port: 8081
2.杀死占用端口的进程
1)查看占用当前端口的进程ID
通过Windows+R组合键打开运行窗口,输入cmd命令回车,在打开的黑色窗口中开始操作。 先通过如下命令查找占用此端口的进程的ID值:
netstat -ano | findstr :20003
注意:默认端口为8080,我这里是20003,具体要以自己当前被占用的端口号为准!!!
2)通过如下命令杀死占用当前端口的进程
taskkill /pid 2096 /f

注意:此处的2096指的是查出来占用当前端口的进程ID,一定要换成自己查出来的进程ID。
3.重启电脑
如果以上方法都没有解决问题,尝试重新启动电脑,以确保没有任何进程在占用指定的端口。
975

被折叠的 条评论
为什么被折叠?



