報錯:java.net.bindexception: address already in use: jvm_bind:8080
原因:8080端口被占用
這說明80端口(該端口是Tomcat的監聽端口)已經被其他程序占用,先用命令提示符 " 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進程。將其關閉。重啟TOMCAT。OK!
我用這種方法查得是一個python.exe的進程占用了端口繼而查到原來是plone程序占用了8080端口。於是關閉即可。
1,獨立運行的Tomcat沒有關閉.自安裝的tomcat程序設置開機自動運行,或者在之前運行過,先關閉myecplipse或jbuilder,在任務管理器中找到Tomcat的進程,將其kill掉,即可.有時候Tomcat非法關閉時,在進程中,仍然存在,仍然占用8080端口.所以只要將其進程殺掉.就可以解決.
2,安裝了其他的軟件占用了Tomcat的端口.用可以查看端口的工具查看一下,或者,直接改掉tomcat的默認端口.即可
報錯:java.net.bindexception: address already in use: jvm_bind:8080