簡體   English   中英

Eclipse 在調試模式下啟動時顯示無法連接到 VM 錯誤

[英]Eclipse when launching in debug mode show Cannot connect to VM error

當我在調試模式下打開任何程序時,Eclipse 顯示無法連接到 VM 錯誤..這是異常堆棧

 java.net.SocketException: socket closed
    at java.net.PlainSocketImpl.socketAccept(Native Method)  //I dont know which socket is closed in my PC
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
    at java.net.ServerSocket.implAccept(ServerSocket.java:453)
    at java.net.ServerSocket.accept(ServerSocket.java:421)
    at org.eclipse.jdi.internal.connect.SocketTransportService.accept(SocketTransportService.java:95)
    at org.eclipse.jdi.internal.connect.SocketTransportImpl.accept(SocketTransportImpl.java:56)
    at org.eclipse.jdi.internal.connect.SocketListeningConnectorImpl.accept(SocketListeningConnectorImpl.java:135)
    at org.eclipse.jdt.internal.launching.StandardVMDebugger$ConnectRunnable.run(StandardVMDebugger.java:107)
    at java.lang.Thread.run(Thread.java:619)

即使我的本地主機工作正常,我 ping 127.0.01 和 localhost 都工作正常,即使我重新啟動我的電腦,甚至出現相同的錯誤。 不知道我的 PC 中關閉了哪個套接字。請幫助我..我正在使用 eclipse 8.x

這是因為您機器中的 localhost 設置。 在 /etc 文件夾中的主機文件中根據本地主機檢查您的 IP

127.0.0.1 localhost添加到 /etc/hosts,在我的 mac 上解決了同樣的問題!

將以下內容添加到eclipse.ini文件可解決此問題:

-vm
C:\Program Files\Java\jdk1.7.0_71\jre\bin\javaw.exe (path of javaw.exe )

確保javaw.exe路徑應該寫在-vm下一行。

這是我的eclipse.ini文件:

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20140116-2212
-product
org.eclipse.epp.package.standard.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vm
C:\Program Files\Java\jdk1.7.0_71\jre\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx512m

如果您是 MAC 用戶,請使用以下步驟

sudo -su root
vi /etc/hosts
---> now insert following line and save the file opened in vi editor
127.0.0.1 localhost

解決方法之一是創建項目后,“單擊下一步”,在此處輸入圖像描述“未完成”

取消選中“創建 module-info.java 文件”框

我在使用 Springsource 的 eclipse 版本時遇到了這個問題。 我的問題是我的調試配置被定義為使用 Javascript 調試器,而我正在嘗試調試 Java 程序。

解決方案:轉到“Debug As”->“Debug Configurations”,然后在該窗口的某處(在我的情況下是 SpringSource 3.1 的最后)將 Eclipse JDT Launcher 設置為調試器選項。

解決問題的最簡單方法:

  1. 選擇“調試配置” 在此處輸入圖片說明
  2. 選擇“參數”-選項卡在此處輸入圖片說明
  3. 刪除參數“--add-modules=ALL-SYSTEM” 在此處輸入圖片說明
  4. 然后“應用”和“調試”。

基本解決方案之一是

創建新項目時取消選中“創建模塊信息.java文件”框

(點擊下一步完成)在此輸入圖片說明

右鍵單擊您的項目名稱,然后選擇 Build Path->Configure Build Path。 單擊“庫”選項卡並檢查您的庫(尤其是 Tomcat 庫)是否在“模塊路徑”而不是“類路徑”下。 就我而言,我的項目需要 Tomcat 庫。 當我將 Tomcat 庫放在“類路徑”下時,它不起作用。 當我將庫移動到“Modulepath”時,它可以工作。 1

我在 Windows 10 機器上的情況是為導致錯誤的項目選擇了錯誤的 JRE。

最初只列出了安裝在用戶主目錄中的默認 JRE(在 Eclipse - Window->Preferences->Java->JRE 中)。 我添加了另外兩個 JRE。

接下來我進入項目,選擇我想調試的包,進入“調試配置”並選擇一個新添加的 JRE (在我的例子中是 Java15)。

之后調試開始工作得很好。

刪除我的module-info.java文件為我解決了這個問題。

您需要在啟用調試端口的情況下啟動服務器,並使用相同端口將調試器與服務器連接。

對於“Tomcat”服務器,您可以添加以下內容以調試模式啟動它,調試端口為8453

     -Xdebug -Xrunjdwp:transport=dt_socket,address=8453,server=y,suspend=n

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM