【问题标题】:find the debug port from inside java从java内部找到调试端口
【发布时间】:2014-08-05 13:13:14
【问题描述】:

我正在使用标志启动一个 java 进程
-Xdebug -Xrunjdwp:transport=dt_socket2,server=y,suspend=y
进程侦听的调试端口在执行时确定并写入 stdout/err。
有没有办法从java进程本身获取端口?

【问题讨论】:

    标签: java remote-debugging


    【解决方案1】:

    您可以从RuntimeMXBean阅读此信息:

    ManagementFactory.getRuntimeMXBean().getInputArguments();
    

    【讨论】:

    • 不提供端口。
    • 我没注意,你应该在参数-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=中提供一个端口
    • 当一个端口没有提供时,它正在寻找一个可用的端口。我可以知道选择的端口吗?我不想依赖特定的静态端口。
    • 我不知道这是否可能。您可以浏览 JPDA 文档 (docs.oracle.com/javase/7/docs/technotes/guides/jpda)。
    【解决方案2】:

    你可以试试

    String port = VMSupport.getAgentProperties().getProperty("sun.jdwp.listenerAddress");

    但是它使用 Oracle JVM 的内部结构,并且只有在调试器未连接时才会包含端口号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 2020-08-03
      • 2014-04-03
      • 2015-04-14
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      相关资源
      最近更新 更多