问题:今天启动一个项目的服务的时候Console中报错:java.net.bindexception: address already in use: jvm_bind:808
原因:这是由于程序端口被战胜而导致的
解决办法:
在dos窗口,先用命令提示符 " netstat -ano " 命令显示端口状态,再在结果中找到被占用的端口对应的PID;然后输入 “ tasklist ” 命令显示中查找其对应程序,就可知道其程序名,进而查明程序的来源,采取适当的措施。一般就是在“任务管理器”中将对应的进程结束掉就可以了。
用netstat -ano 命令结果:
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 2544
TCP 0.0.0.0:100 0.0.0.0:0 LISTENING 2544
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1404
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:1110 0.0.0.0:0 LISTENING 228
TCP 127.0.0.1:1025 0.0.0.0:0 LISTENING 1052
TCP 127.0.0.1:1159 127.0.0.1:1110 CLOSE_WAIT 2992
TCP 127.0.0.1:1297 127.0.0.1:1110 CLOSE_WAIT 2992
TCP 127.0.0.1:1324 127.0.0.1:1110 CLOSE_WAIT 2992
可见80端口被PID 为2544的进程占用了。
用tasklist 命令:
图像名 PID 会话名 会话# 内存使用
========================= ====== ================ ======== ============
System Idle Process 0 Console 0 28 K
System 4 Console 0 264 K
WebThunder.exe 2544 Console 0 12,120 K
java.exe 2884 Console 0 6,296 K
tasklist.exe 3464 Console 0 4,372 K
可见2544是WebThunder.exe进程。将其关闭。