无法使用Eclipse调试Java应用程序

无法使用Eclipse调试Java应用程序,java,eclipse,debugging,remote-debugging,vert.x,Java,Eclipse,Debugging,Remote Debugging,Vert.x,我的机器上有一个Java(Vert.x)应用程序,我正试图将Eclipse附加到该应用程序上进行调试 我通常在控制台中启动Java应用程序,如下所示: java -jar build/libs/my-app.jar 阅读有关调试的内容后,我尝试按如下方式启动应用程序: java -jar build/libs/my-app.jar -Xdebug -Xrunjdwp:transort:transport=dt_socket,address=8001,server=y,suspend=n 当我

我的机器上有一个Java(Vert.x)应用程序,我正试图将Eclipse附加到该应用程序上进行调试

我通常在控制台中启动Java应用程序,如下所示:

java -jar build/libs/my-app.jar
阅读有关调试的内容后,我尝试按如下方式启动应用程序:

java -jar build/libs/my-app.jar -Xdebug -Xrunjdwp:transort:transport=dt_socket,address=8001,server=y,suspend=n
当我运行此程序时,应用程序似乎在控制台中启动良好

然后我进入Eclipse,并尝试通过
Run
->
Debug Configurations
调试连接到应用程序。这就是我的调试配置的外观:

当我点击debug时,我会弹出一个错误框,上面说连接被拒绝了(我用了我真正的应用程序的名称)。见下文:


我做错了什么?如何让远程调试通过Eclipse连接到我的应用程序?

根据我的阅读,您的-Xrunjdwp选项不正确:

-Xrunjdwp:transort:transport=dt_socket,address=8001,server=y,suspend=n
应该是

-Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n
如果您的系统有多个IP地址,则可能会混淆代理正在侦听哪个IP上的连接。你可以强制一个特定的地址;e、 g

-Xrunjdwp:transport=dt_socket,address=127.0.0.1:8001,server=y,suspend=n
并在Eclipse调试连接参数中使用匹配的IP和端口



而且。。。正如戴夫·汤普森所发现的。。。所有JVM选项必须放在
-jar
参数之前。(在
-jar name.jar
之后的任何内容都将被视为应用程序的命令行参数。)

根据我的阅读,您的-Xrunjdwp选项不正确:

-Xrunjdwp:transort:transport=dt_socket,address=8001,server=y,suspend=n
应该是

-Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n
如果您的系统有多个IP地址,则可能会混淆代理正在侦听哪个IP上的连接。你可以强制一个特定的地址;e、 g

-Xrunjdwp:transport=dt_socket,address=127.0.0.1:8001,server=y,suspend=n
并在Eclipse调试连接参数中使用匹配的IP和端口



而且。。。正如戴夫·汤普森所发现的。。。所有JVM选项必须放在
-jar
参数之前。(在
-jar name.jar
之后的任何内容都将被视为应用程序的命令行参数。)

检查java是否使用
netstat
打开了端口,并确保已将正确的主机名放入
主机
输入框,检查防火墙是否阻止端口。同时确保您的Eclipse网络代理配置设置为绕过127.0.0.1和本地主机的代理。检查java是否使用
netstat
打开端口,并确保您已将正确的主机名放入
Host
输入框,检查防火墙是否正在阻止端口。还要确保您的Eclipse网络代理配置设置为绕过127.0.0.1和localhost的代理。并且必须在
-jar jarfile
选项之前;
-jar jarfile
mainclassname
之后的任何内容都将用作Java应用程序的参数。很好!更新。并且必须在
-jar jarfile
选项之前;
-jar jarfile
mainclassname
之后的任何内容都将用作Java应用程序的参数。很好!更新。