我用典型的参数开始执行代码:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 myPackage.myMainClassname
应用程序启动,打印"在地址:5005"中侦听传输dt_socket;而且......走得更远!没有任何等待连接的企图。我可以在执行期间连接到它并且调试本身可以工作。但是为什么应用程序不等待调试器的连接?
在我的配置中看起来有些东西坏了,但我找不到根本原因。我尝试了几种方法来指定调试设置,不同的端口,以管理员身份运行,关闭防火墙 - 没有任何帮助。
答案 0 :(得分:12)
如果您希望等待连接,则需要指定suspend=y
。你的调试工作正常。如果您尝试连接,您将能够。很可能你只是习惯使用suspend=y
阻塞,直到建立连接为止。
suspend=n
时会出现此行为。
答案 1 :(得分:4)
选择菜单"运行/编辑配置"。检查:"编辑配置" 弹出对话框。点击" +"图标,选择"远程"从列表中。 检查:新配置名称"未命名"出现在" Remote" 类别。将配置名称更改为更合理的内容,例如 "远程调试"。不要更改任何其他参数,只需点击"确定"。
在调试器下运行web应用程序
启动gradle任务" appStartDebug"在IntelliJ IDEA下。注意:做 不要尝试在调试器下启动此任务。在正常模式下运行它。 检查:您应该看到"在地址中侦听传输dt_socket: 5005" in" Run"输出窗口。选择菜单"运行/运行...",选择"远程 调试"配置,选择" Debug"命令。检查:你应该看到 "连接到目标虚拟机,地址:' localhost:5005',传输: '插座'" in" Debug"输出窗口。
现在您的Web应用程序正在调试器下运行:您 可以设置断点,观察/检查变量等等。