Address already in use: JVM_Bind(端口衝突)

java.net.BindException: Address already in use: JVM_Bind

    at java.net.PlainSocketImpl.socketBind(Native Method)

    at java.net.PlainSocketImpl.bind(Unknown Source)

    at java.net.ServerSocket.bind(Unknown Source)

    at java.net.ServerSocket.<init>(Unknown Source)

    at java.net.ServerSocket.<init>(Unknown Source)

    at mypackage.WebServer.startServer(WebServer.java:13)

    at mypackage.WebServer.main(WebServer.java:33)

這是我學JavaWeb遇到的第一個錯誤,解決花了一些時間。看到錯誤不要害怕,因爲解決錯誤的同時,正是我們經驗值增長也在增長的哦

這個是我在使用Socket和多線程實現一個JavaWeb服務器時遇到的

Address already in use 這句話是地址已經使用

這個是遇到這個問題的可能情況

I.就是當前端口已經有別的程序在佔用着,所以要麼把佔用這個端口的程序關閉,要麼重新換一個端口

II.端口號被佔用,如果你有裝oracle的話,有可能是oracle使用了8080端口,oracle安裝後並且如果啓動了OracleHttp服務會佔用8080端口

III.我認爲很可能是多啓動了幾次TOMCAT,在ECLIPSE下重複啓動TOMCAT就會出現這個問題,你去調查一下看看是否是這個原因.

IV.如果不是windows操作系統,那麼80端口已經被佔用.如果是windows操作系統.請檢查是否裝有IIS.

查找問題原因:我的機子還沒有裝Oracle,並且使用的是Windows操作系統,裝了IIS了,使用的是80端口,但我這個程序是用的8080端口,排除了II、IV。I說的籠統了點,我的問題是III多啓動了幾次TOMCAT,ECLIPSE下重複啓動TOMCAT就會出現這個問題

解決方法:

1.把myeclipse關掉後臺的javax.exe進程殺掉。然後重新啓動myeclipse就可以了

2. 把tomcat/conf文件夾裏面的server.xml的端口換成其它未佔用的80端口 如:8088、8089等等

建議出現上述情況使用第一種方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章