在调试模式下启动时显示Eclipse无法连接到VM错误

时间:2012-10-05 18:31:25

标签: java

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)

即使我的Localhost工作正常,我ping 127.0.01和localhost都工作正常,即使我重新启动我的电脑甚至得到相同的错误。不知道我的PC中关闭了哪个套接字。请帮助我..我正在使用eclipse 8.x

12 个答案:

答案 0 :(得分:14)

这是因为您机器中的localhost设置。在/ etc文件夹

中的hosts文件中检查你的ip对localhost

答案 1 :(得分:2)

将以下内容添加到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

答案 2 :(得分:1)

127.0.0.1 localhost添加到/ etc / hosts,在我的mac上解决了同样的问题!

答案 3 :(得分:1)

解决方案之一是 创建项目后, “单击下一步”,enter image description here“未完成”

取消选中该框 “创建module-info.java文件”

答案 4 :(得分:0)

我使用Springsource的eclipse版本遇到了这个问题。我的问题是我的调试配置被定义为使用Javascript调试器,我试图调试Java程序。

解决方案:转到“调试为” - > “调试配置”,以及该窗口中的某个位置(在我的案例中最后是SpringSource 3.1)将Eclipse JDT Launcher设置为调试器选项。

答案 5 :(得分:0)

解决问题的最简单方法:

  1. 选择“调试配置” enter image description here
  2. 选择“参数”-制表符 enter image description here
  3. 删除参数“ --add-modules = ALL-SYSTEM” enter image description here
  4. 然后“应用”和“调试”。

答案 6 :(得分:0)

如果您是MAC用户,请执行以下步骤

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

答案 7 :(得分:0)

一种基本解决方案是

创建新项目时 取消选中“创建module-info.java文件”框

(单击“下一步”完成)enter image description here

答案 8 :(得分:0)

右键单击您的项目名称,然后选择“构建路径”->“配置构建路径”。单击库选项卡,然后检查您的库(尤其是Tomcat库)是否在“ Modulepath”下,而不在“ Classpath”下。就我而言,我的项目需要Tomcat库。当我将Tomcat库放在“类路径”下时,它不起作用。当我将库移动到“ Modulepath”时,它可以工作。1

答案 9 :(得分:0)

在Windows 10计算机上,我的情况是为该项目选择了错误的JRE,从而导致该错误。

最初仅列出了安装在用户主目录中的默认JRE(在Eclipse-Window-> Preferences-> Java-> JRE中)。 I have added two other JREs.

接下来,我进入项目,选择要调试的软件包,转到“调试配置”,然后选择一个新添加的JRE (in my case Java15).

随后调试开始正常工作。

答案 10 :(得分:0)

删除我的 module-info.java 文件解决了我的问题。

答案 11 :(得分:-1)

您需要在启用调试端口的情况下启动服务器,并使用相同的端口将调试器与服务器连接。

对于“Tomcat”服务器,您可以添加以下内容以在调试模式下启动它,调试端口为8453

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