无法使用 Eclipse 调试 Java 应用程序
Cannot debug Java application with Eclipse
我的机器上有一个 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
调试连接到应用程序。这是我的调试配置的样子:
当我单击调试时,弹出一个错误框,提示连接被拒绝(我覆盖了我的真实应用程序的名称)。见下文:
我做错了什么?如何进行远程调试以使用 Eclipse 连接到我的应用程序?
根据我对这个 JDWP documentation 的阅读,您的 -Xrunjdwp 选项不正确:
-Xrunjdwp:transort:transport=dt_socket,address=8001,server=y,suspend=n
应该是
-Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n
如果您的系统有多个 IP 地址,可能会混淆代理正在侦听哪些 IP 地址的连接。您可以强制使用特定地址;例如
-Xrunjdwp:transport=dt_socket,address=127.0.0.1:8001,server=y,suspend=n
并在 Eclipse 调试连接参数中使用匹配的 IP 和端口。
AND ... 正如 Dave Thompson 发现的那样...所有 JVM 选项都必须放在 之前 -jar
参数。 (-jar name.jar
之后的任何内容都将被视为您的应用程序的命令行参数。)
我的机器上有一个 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
调试连接到应用程序。这是我的调试配置的样子:
当我单击调试时,弹出一个错误框,提示连接被拒绝(我覆盖了我的真实应用程序的名称)。见下文:
我做错了什么?如何进行远程调试以使用 Eclipse 连接到我的应用程序?
根据我对这个 JDWP documentation 的阅读,您的 -Xrunjdwp 选项不正确:
-Xrunjdwp:transort:transport=dt_socket,address=8001,server=y,suspend=n
应该是
-Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n
如果您的系统有多个 IP 地址,可能会混淆代理正在侦听哪些 IP 地址的连接。您可以强制使用特定地址;例如
-Xrunjdwp:transport=dt_socket,address=127.0.0.1:8001,server=y,suspend=n
并在 Eclipse 调试连接参数中使用匹配的 IP 和端口。
AND ... 正如 Dave Thompson 发现的那样...所有 JVM 选项都必须放在 之前 -jar
参数。 (-jar name.jar
之后的任何内容都将被视为您的应用程序的命令行参数。)