问题描述
当我们在启动SpringBoot项目时,有时会遇到如下错误提示:
***************************
APPLICATION FAILED TO START
***************************
Description:
Web server failed to start. Port 8084 was already in use.
Action:
Identify and stop the process that's listening on port 8084 or configure this application to listen on another port.
这个错误明确告诉我们:端口8084已经被其他进程占用,导致SpringBoot应用无法启动。下面介绍两种解决这个问题的有效方法。
方法一:修改应用端口号
最简单的解决方案是修改SpringBoot应用的默认端口号。在application.yml
(或application.properties
)配置文件中添加如下配置:
server:
port: 8085 # 修改为未被占用的端口号
优点:
- 操作简单,无需查找和终止其他进程
- 适合开发环境快速解决问题
缺点:
- 如果应用有固定端口需求,可能不适用
- 需要确保新端口号未被占用
方法二:终止占用端口的进程
如果想继续使用原端口号8084,可以按照以下步骤操作:
1. 查找占用端口的进程
在Windows系统下,打开命令提示符(cmd)执行:
netstat -ano|findstr "8084"
命令输出会显示占用8084端口的进程ID(PID)。
2. 终止占用端口的进程
使用查找到的PID,执行以下命令终止进程:
taskkill /f /PID 715184 # 将715184替换为实际的PID
注意:强制终止进程可能会导致数据丢失,请确保该进程可以安全终止。
3. 重启SpringBoot应用
进程终止后,重新启动SpringBoot项目即可正常使用8084端口。
Linux/Mac系统下的替代命令
对于Linux或Mac用户,可以使用以下命令:
-
查找占用端口的进程:
lsof -i :8084
-
终止进程:
kill -9 <PID>
总结
两种方法各有优劣:
- 修改端口号:适合快速解决问题,特别是开发环境中
- 终止占用进程:适合必须使用特定端口的生产环境
建议开发人员根据实际情况选择合适的方法。如果是长期开发的项目,可以考虑在配置文件中使用随机端口:
server:
port: 0 # 使用随机可用端口
这样每次启动都会自动选择可用端口,避免端口冲突问题。