....eb server failed to start. Port 8901 was already in use.Action:Identify and stop the process that's listening on port 8901 or configure this application to listen on another port.
问题分析
这个错误表明端口 8901 已被其他进程占用。为了启动你的应用,你需要执行以下操作:
确定哪个进程占用了端口 8901。
停止占用端口的进程,或者 更改应用的端口配置。
解决步骤
1. 查找占用端口的进程
在 Linux 或 Windows 系统中,可以通过以下命令找到占用端口 8901 的进程。
Linux 系统
sudo netstat -tuln | grep 8901
或者使用 ss 命令:
sudo ss -tuln | grep 8901
输出示例:
tcp 0 0 0.0.0.0:8901 0.0.0.0:* LISTEN 12345
LISTEN 表示有进程在监听端口。
12345 是占用端口的进程 ID (PID)。
Windows 系统
打开命令提示符,运行:
netstat -ano | findstr 8901
输出示例:
TCP 0.0.0.0:8901 0.0.0.0:0 LISTENING 12345
12345 是占用端口的进程 ID (PID)。
2. 停止占用端口的进程
Linux
使用 kill 命令停止占用端口的进程。
sudo kill -9 <PID>
将 替换为上一步中查找到的进程 ID,例如:
sudo kill -9 12345
如果不知道该进程是否重要,可以先查看其详细信息:
ps -p <PID> -o user,pid,cmd
Windows
使用 taskkill 命令结束进程。
根据 PID 停止进程:
taskkill /PID <PID> /F
示例:
taskkill /PID 12345 /F
如果想进一步了解该进程:
tasklist /FI "PID eq <PID>"
3. 配置应用使用其他端口
如果你无法终止占用端口的进程,可以更改应用的监听端口。
Spring Boot 应用
修改应用的默认端口号:
在 application.properties 文件中添加或修改:
server.port=8080
或者使用命令行参数启动应用:
java -jar myapp.jar --server.port=8080
其他框架
查找框架文档,调整端口配置。
4. 确认问题解决
重新启动应用,确保端口不再被占用。如果需要验证监听状态,运行:
Linux:
sudo netstat -tuln | grep <new_port>
Windows:
netstat -ano | findstr <new_port>
总结
查找占用端口的进程:netstat 或 ss。
停止占用端口的进程:kill(Linux)或 taskkill(Windows)。
修改应用监听的端口:更改配置或使用命令行参数。