报错概述
前两天大二学弟问了我一个Web开发时经常遇到的问题,这个问题自己以前也遇到过,也有粉丝在后台问过我,今天就写下这篇文章来记录下这个错误。
首先先看一下报错:Web server failed to start. Port 8080 was already in use
错误分析
在我们开发Web应用时,经常会遇到这样的需要启动本地服务器来测试应用的情况。也经常会遇到类似于这样的错误:“Web server failed to start. Port 8080 was already in use”。
这个错误表明端口8080已经被其他程序占用,导致我们的的Web服务器无法在这个端口上启动。
问题解决
这个问题可以通过好几种方式解决,接下来就为大家介绍一下!
重启
首先第一种办法就是重启,俗话说,重启可以解决99%的问题,剩下1%无法解决的问题就是该“换电脑了”。对于这个问题,重启这个方法当然可行,因为重启的话你的应用会关闭,相应的端口也会关闭。不过这种方法不是首选。
更改Web服务器的端口号
在我们自己写程序,写课设或毕设时,这种方法也是可行的。但是在公司协作,项目组一起工作时,这种方式肯定是行不通的。我们可以在yaml或yml文件里修改我们Web应用的端口号。这样的话,我们的应用端口号就不会冲突了。
查找并关闭占用端口的程序
这种方式是最常用的,无论是在我们的课设中还是在公司工作的时候,接下来重点讲一下这种方式。
首先,我们需要找出哪个程序正在使用端口8080。在Windows、Linux和macOS上,我们需要使用不同的命令来查找。
Windows 用户
打开命令提示符(CMD)或PowerShell,输入以下命令:
netstat -aon | findstr :8080
这个命令会列出所有使用端口8080的进程。PID列显示的是进程的ID。找到对应的PID后,我们可以使用任务管理器来结束该进程,或者在CMD中使用taskkill /PID [PID] /F命令来强制结束进程(将[PID]替换为实际的进程ID)。
加上/F是代表强制终止此进程。
Linux/macOS 用户
打开终端,输入以下命令:
sudo lsof -i :8080
或者,如果你的系统上没有lsof,可以使用netstat:
sudo netstat -tulnp | grep :8080
这些命令会列出使用端口8080的进程信息。PID/Program name列显示了进程的ID和名称。我们可以使用kill -9 [PID]命令来结束该进程(同样将[PID]替换为实际的进程ID)。
总结
遇到“Web server failed to start. Port 8080 was already in use”错误时,不要惊慌。通过查找并关闭占用端口的程序、更改Web服务器的端口号或重启计算机,我们可以轻松地解决这个问题。希望这篇文章能帮助你快速恢复开发工作流程。