11

当我在调试模式下打开任何程序时,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 和本地主机都工作正常,即使我重新启动我的电脑,甚至得到同样的错误。不知道我的 PC 中关闭了哪个套接字。请帮助我..我正在使用 eclipse 8.x

4

12 回答 12

15

这是因为您的机器中的 localhost 设置。在 /etc 文件夹中的 hosts 文件中检查您的 ip 与 localhost

于 2013-03-13T10:37:57.177 回答
3

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

于 2018-04-09T09:47:52.163 回答
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
于 2015-02-01T14:38:08.607 回答
1

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

sudo -su root
vi /etc/hosts
---> now insert following line and save the file opened in vi editor
127.0.0.1 localhost
于 2019-07-21T10:04:01.797 回答
1

解决方案之一是创建项目后,“单击下一步”,在此处输入图像描述“未完成”

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

于 2020-09-24T09:36:05.947 回答
0

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

解决方案:转到“Debug As”->“Debug Configurations”,然后在该窗口的某处(在我的情况下为 SpringSource 3.1 的末尾)将 Eclipse JDT Launcher 设置为调试器选项。

于 2013-05-08T04:02:30.577 回答
0

基本解决方案之一是

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

(单击下一步下一步完成)在此处输入图像描述

于 2020-09-24T09:50:41.440 回答
0

解决问题的最简单方法:

  1. 选择“调试配置” 在此处输入图像描述
  2. 选择“参数”-选项卡 在此处输入图像描述
  3. 删除参数“--add-modules=ALL-SYSTEM” 在此处输入图像描述
  4. 然后“应用”和“调试”。
于 2018-10-21T20:33:16.377 回答
0

我在 Windows 10 机器上的情况是为项目选择了错误的 JRE,导致错误。

最初仅列出了安装在用户主目录中的默认 JRE(在 Eclipse - Window->Preferences->Java->JRE 中)。 我添加了另外两个 JRE。

接下来我进入项目,选择我想调试的包,进入“调试配置”并选择一个新添加的 JRE (在我的例子中是 Java15)。

之后调试开始工作得很好。

于 2020-11-14T16:54:40.440 回答
0

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

于 2020-11-03T21:47:49.807 回答
0

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

于 2021-02-13T04:52:24.823 回答
-1

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

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

     -Xdebug -Xrunjdwp:transport=dt_socket,address=8453,server=y,suspend=n
于 2012-10-05T18:38:48.633 回答