例如,我们可以通过在命令行中添加以下内容来启用java远程调试。
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
但是我的应用是用纱线运行的,我不确定哪个端口可用。
所以我想在我的代码中启用java debug。
首先,我检测到一个可用的端口并登录我的程序,然后我可以使用此端口来调试我的应用程序。
答案 0 :(得分:0)
address属性指定主机(可选)和端口(如果省略主机,则仅指定端口)。所以address=5005
指定了你的情况下的端口5005。如果您希望程序等到连接调试器,请将suspend=n
切换为suspend=y
。
编辑: 也许我误解了你的问题。如果你想以编程方式启用调试,那么这是不可能的,因为调试工具JPDA没有暴露Java API,也没有任何其他方式以编程方式启动和停止它。
答案 1 :(得分:0)
我不确定这可以通过代码完成;但根据an answer to this old question, 可以使用jsadebugd 为已经运行的JVM启用调试
如上所述,该功能标记为实验性且不受支持,因此您的里程可能会有所不同。