在代码

时间:2017-09-30 09:59:38

标签: java remote-debugging

例如,我们可以通过在命令行中添加以下内容来启用java远程调试。

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

但是我的应用是用纱线运行的,我不确定哪个端口可用。

所以我想在我的代码中启用java debug。

首先,我检测到一个可用的端口并登录我的程序,然后我可以使用此端口来调试我的应用程序。

2 个答案:

答案 0 :(得分:0)

address属性指定主机(可选)和端口(如果省略主机,则仅指定端口)。所以address=5005指定了你的情况下的端口5005。如果您希望程序等到连接调试器,请将suspend=n切换为suspend=y

编辑: 也许我误解了你的问题。如果你想以编程方式启用调试,那么这是不可能的,因为调试工具JPDA没有暴露Java API,也没有任何其他方式以编程方式启动和停止它。

答案 1 :(得分:0)

我不确定这可以通过代码完成;但根据an answer to this old question 可以使用jsadebugd 为已经运行的JVM启用调试

如上所述,该功能标记为实验性且不受支持,因此您的里程可能会有所不同。