在企業版Eclipse中,在已經啟動了Tomcat服務器后,準備運行頁面或Servlet時,有時會出現這樣的關于Tomcat服務器端口占用的問題: “Several ports (8005, 8080, 8009) required by Tomcat v6.0 Server at localhost are already in use. The server may already be running in another PRocess, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).”
錯誤信息的大意是說Tomcat運行所需的那三個端口被被的程序占用了。 我個人遇到過的的原因大概有以下幾種:
情況一:點擊運行的時候沒有選中頁面或Servlet窗口的標簽 情況如下圖:
仔細觀察可知,左圖其實并沒有選中要運行的Servlet窗口的標簽,因為標簽是白色的,此時點擊運行按鈕的話相當于再啟動一個服務器進程,端口當然是被原來那個已經啟動的服務器給占了。而右圖中Servlet窗口標簽是藍色的,說明已經被選中了,點擊綠色的運行按鈕后自然就是將這個Servlet裝入已經啟動的那個服務器運行,所以不會有像剛才那種端口占用的情況。
情況二:在硬盤的兩個地方都有Tomcat 下面說說我碰到過的另一種情況,以前在D盤安裝過一個Tomcat,后來因為有段時間不怎么用,就忽略了。再后來又開始做練習的時候,在C盤裝了另一個Tomcat,并且在Eclipse中配置的時候也是默認選擇了C盤的那個Tomcat。悲劇的是,因為原來在D盤的那個Tomcat我設成了開機啟動,所以端口一開始就被它占著。因此,在Eclipse中啟動Tomcat(C盤那個)時,就出現了端口占用的錯誤提示。
后來把D盤的Tomcat刪除后,在Eclipse中就能正常運行頁面了。
情況三:(8005,8080,8009)三個端口中的至少一個被其他程序占用 這種情況很難一下子看出來,不過反正就是要找出到底是哪個程序占用了這幾個端口。可以在控制臺里用“netstat -abn”命令查看正在運行的程序所占用的端口以及相關信息:
可以看到,是”javaw.exe”這個程序占用了8009和8080端口,在資源管理器中把它結束掉就可以了。
當然,還可能有其他情況導致的原因。慢慢探索吧。
轉載自:http://blog.csdn.net/zhouyingge1104/article/details/7243363 端口被占用了,你把另外的tomcat關閉,如果找不到,則打開任務管理器,結束”javaw.exe”這個進程,就沒問題了。
新聞熱點
疑難解答