1. 程式人生 > >eclipse遠端除錯時出現:Failed to connect to remote VM. Connection refused. Connection refused: connect

eclipse遠端除錯時出現:Failed to connect to remote VM. Connection refused. Connection refused: connect

如圖:
這裡寫圖片描述

以下都是在網路中找的解決方案:

解決方案1:服務是在root 賬戶下啟動的,關掉服務殺掉程序,然後用普通使用者登入重啟服務!(對我無效,因為我的服務不可以用普通使用者啟動

解決方案2:在Eclipse中找到Run-Debug Configurations-Remote Java Application下找到相應工程在connect的tag下設定port為8000(表示在我這裡無效)

如果還不能用的話,你把Remote Java Application下的 WebViewHistory全部刪除,不新建,直接Debug執行,這樣Eclipse會自動為你建立一個預設的WebViewHistory。(不可以直接debug!親測

)

解決方案3:有可能是防火牆的問題(關閉了防火牆,此問題依舊存在!

解決方案4:因為以前都是可以的,所以百思不得其解,Google了半天,能找到的問題一般也都是因為對方沒有開啟遠端除錯埠,所以自然連不上,但是我這裡顯然不是這個情況。在困惑了好久以後,突然想到會不會是受到了 Eclipse 代理設定的影響?雖然覺得不太可能,因為我的理解是那個代理只是給 Eclipse 本身用的,並不是給通過 Eclipse 啟動的應用程式用的。(我這裡依舊行不通

解決方案5:這是因為Tomcat還沒有啟動,或者是沒有以Debug模式啟動。(當然我這裡不存在這個問題

解決方案6:同組其他人獨佔本連線(同時只能有一個連線執行遠端除錯),點選disconnect按鈕。(我這裡依舊不是這個問題

解決方案7:有一點非常重要,先執行應用程式,然後連線它,否則Eclipse會丟擲異常”Failed to connect to remote VM. Connection refused”.
  提示一:在JVM DEBUG引數中,有一個引數叫”suspend”,它的取值有兩個,“y”或者“n”,如果您剛開始就想除錯的話,將引數設定為”suspend=y”,這樣Eclipse會遠端連線Java應用程式。
  如果你想先執行專案,然後連線Eclipse,那麼可以將引數設定為”suspend=n”,這樣的話,Java應用程式會正常執行,之後Eclipse會開始遠端連線。
  提示二:使用啟動指令碼輸入JVM除錯引數,在指令碼中使用變數isDebugEnabled或者REMOTE_DEBUG_PORT,當你想遠端除錯Java應用程式的時候,可以將這個變數匯出。整個操作過程非常簡單,只需要一次性的安裝即可。
  提示三:如果你得到錯誤提示”Failed to connect to remote VM. Connection refused”或者”Connection refused: connect”,那麼可能出現的原因有兩種可能。第一是您的Java專案沒有執行在遠端主機上,第二是輸入埠和主機名有誤,驗證成功後,可以填寫完整的主機名。
  提示四:您也要確保本地Eclipse和遠端Eclipse執行的是相同的程式碼庫。使用除錯選項”-g”可以編譯程式碼,Eclipse可以輕鬆蒐集除錯資訊,比如本地變數的除錯資訊,預設情況下,使用除錯選項“-g”,類檔案可能更大些除錯資訊。(依舊沒有解決我這裡的問題

解決方案8:找到tomcat/bin/catalina.bat檔案,編輯,在CATALINA_OPTS之前加上下行程式碼

set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=50001【用來除錯的埠號】

儲存,重啟Tomcat(我這邊這個也沒能解決我的問題

解決方案9:原因最可能就是 Eclipse 中的 ip地址配置錯誤(就是這個原因,複製IP地址複製錯了,我也是。。。。

解決方案10
估計是網路不穩定,最終還是除錯成功了。(這個嗎。。。。。

解決方案11:防火牆的問題。把360裡面的網頁防火牆關掉就好用了。我每次都重新裝。這次終於找到原因了。(關閉了360,依舊沒有解決問題

結論:以後一定要看清楚最基本的配置,然後一步一步確定自己的結論是否正確,其實,IP地址寫錯,這個問題應該是第一個就排除的原因,而我卻因為某種原因,沒有進行檢查,以至於浪費了一天的時間!