【问题标题】:Java Attach API: How to set agent properties?Java Attach API:如何设置代理属性?
【发布时间】:2011-10-17 05:15:00
【问题描述】:

JDK6 的 Java Attach API 在VirtualMachine 上提供了一个方法getAgentProperties()

公共抽象属性 getAgentProperties() 抛出 IOException

返回目标虚拟中的当前代理属性 机器。目标虚拟机可以维护一个列表 代表代理人的财产。这是的方式 完成,属性的名称和值的类型 是允许的,是特定于实现的。代理属性是 通常用于存储通信端点和其他 代理配置详细信息。例如,调试器代理 可能会为其传输地址创建一个代理属性。

此方法返回其键和值为的代理属性 一个字符串。键或值不是字符串的属性是 省略。如果在 目标虚拟机,则返回一个空的属性列表。

(来自Java Attach API

我的问题是,如何在另一边设置这些属性(即 在运行代理的 JVM 中)?

instrument API 的文档也没有提及这一点。

【问题讨论】:

  • 我不认为你可以。你需要做什么?
  • 我想查看代理的状态。 IE。我有一个代理,它监听一个端口并且可以启动和停止。目前,我使用我设置的系统属性,当代理启动和停止时删除。这可行,但如果我不污染全局系统属性命名空间会更好。
  • 来自上面的 Javadoc:“例如,调试器代理可能会为其传输地址创建代理属性”。所以肯定有人可以创建这样的属性。
  • @RolandHuß 你有没有找到答案?
  • 不,很遗憾没有。我坚持上述解决方案,使用状态的系统属性。虽然不是最好的解决方案,但效果很好。

标签: java instrumentation agent


【解决方案1】:

在 Hot Spot VM 上,您可以使用 sun.misc.VMSupport.getAgentProperties() 设置代理属性。

【讨论】:

    猜你喜欢
    • 2014-06-23
    • 1970-01-01
    • 2016-08-10
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多