Eclipse 在调试模式下启动时显示“无法连接到虚拟机”错误

问题描述 投票:0回答:13

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

java
13个回答
15
投票

这是因为您计算机中的本地主机设置。检查 /etc 文件夹中的主机文件中的 localhost 的 IP


3
投票

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


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

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

1
投票

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

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


0
投票

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

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


0
投票

解决问题最简单的方法:

  1. 选择“调试配置”
  2. 选择“参数”选项卡
  3. 删除参数“--add-modules=ALL-SYSTEM”
  4. 然后“应用”和“调试”。

0
投票

基本解决方案之一是

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

(点击下一步下一步完成)enter image description here


0
投票

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


0
投票

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

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

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

之后调试就开始正常工作了。


0
投票

删除我的

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


0
投票

这两件事帮助了我...

  1. 使用 %temp% 清理临时文件。
  2. 从应用程序中删除所有断点

然后再次运行应用程序!


-1
投票

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

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

8453

     -Xdebug -Xrunjdwp:transport=dt_socket,address=8453,server=y,suspend=n
© www.soinside.com 2019 - 2024. All rights reserved.