现象:
启动Tomcat时抛出异常:java.net.BindException: Address already in use: JVM_Bind:8080
原因:
8080端口已经被其他程序占用(该端口是Tomcat的监听端口)
方案:
1、在CMD黑窗口下键入命令:netstat -ano
--------------------------------------------------------------------------------------------------------
C:\Documents and Settings\issuser>netstat -ano
Active Connections
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:25 0.0.0.0:0 LISTENING 856
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 856
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1552
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 856
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:1029 0.0.0.0:0 LISTENING 856
TCP 0.0.0.0:1032 0.0.0.0:0 LISTENING 3836
TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING 176
TCP 0.0.0.0:1831 0.0.0.0:0 LISTENING 2140
TCP 0.0.0.0:2407 0.0.0.0:0 LISTENING 176
TCP 0.0.0.0:2425 0.0.0.0:0 LISTENING 2704
TCP 0.0.0.0:5500 0.0.0.0:0 LISTENING 2212
TCP 0.0.0.0:5520 0.0.0.0:0 LISTENING 2212
TCP 0.0.0.0:7034 0.0.0.0:0 LISTENING 1688
TCP 0.0.0.0:8009 0.0.0.0:0 LISTENING 5444
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 5444
TCP 127.0.0.1:1071 127.0.0.1:1072 ESTABLISHED 2328
TCP 127.0.0.1:1072 127.0.0.1:1071 ESTABLISHED 2328
--------------------------------------------------------------------------------------------------------
在显示系统当前被监听的进程及其占用的端口、ID等信息的列表中可以看到8080端口被5444进程给占用了。
2、然后再键入命令:tasklist
--------------------------------------------------------------------------------------------------------
C:\Documents and Settings\issuser>tasklist
plsqldev.exe 5820 Console 0 26,296 K
plugin-container.exe 4204 Console 0 36,880 K
cmd.exe 5336 Console 0 4,908 K
ReportingServicesService. 1060 Console 0 45,448 K
javaw.exe 5444 Console 0 34,068 K
taskmgr.exe 4152 Console 0 2,684 K
--------------------------------------------------------------------------------------------------------
运行命令后,在出现的列表里可以找到5444对应进程。原来是javaw.exe进程占用了8080端口,需要结束这个进程。
3、然后打开任务管理器,终束对应进程。
4、最后再次启动tomcat,该问题解决。
javaw.exe占用8080端口是经常出现的,因此有时候不需要进行上面的命令查找操作,就下意识的打开任务管理器,找到进程javaw.exe并结束它。然而,当出现8080端口被占用但又不清楚是哪个进程的时候,便可使用此种方案进行解决。【互联网纳】