gpt4 book ai didi

java - 如何从命令行将参数传递到 JMX MBean 函数

转载 作者:行者123 更新时间:2023-11-30 05:43:17 24 4
gpt4 key购买 nike

我正在尝试通过命令行远程调用 MBean。现在,我可以列出属性和操作。例如,我可以使用以下命令列出 HotspotDiagnostic 的所有属性和操作:

java -jar cmdline-jmxclient-0.10.3.jar admin:P@sSw0rd 10.11.12.13:1111 com.sun.management:type=HotSpotDiagnostic

这给了我这个属性和操作列表

Attributes:
DiagnosticOptions: DiagnosticOptions (type=[Ljavax.management.openmbean.CompositeData;)
ObjectName: ObjectName (type=javax.management.ObjectName)
Operations:
dumpHeap: dumpHeap
Parameters 2, return type=void
name=p0 type=java.lang.String p0
name=p1 type=boolean p1
getVMOption: getVMOption
Parameters 1, return type=javax.management.openmbean.CompositeData
name=p0 type=java.lang.String p0
setVMOption: setVMOption
Parameters 2, return type=void
name=p0 type=java.lang.String p0
name=p1 type=java.lang.String p1

但是现在假设我想调用 dumpHeap 操作,该操作分别采用字符串和 boolean 类型的两个参数 p0 和 p1。我如何传递这些参数?

我已经尝试过这些:

java -jar cmdline-jmxclient-0.10.3.jar admin:P@sSw0rd10.11.12.13:1111 com.sun.management:type=HotSpotDiagnostic dumpHeap p0=aaa p1=true

java -jar cmdline-jmxclient-0.10.3.jar admin:P@sSw0rd10.11.12.13:1111 com.sun.management:type=HotSpotDiagnostic dumpHeap aaa true

但我不确定语法是什么,甚至不确定应该为字符串参数传递什么。顺便说一句,这并不是为了任何特定的事情。只是想更多地了解和了解如何从命令行利用这些操作。非常感谢任何文档和帮助。

编辑:我很天真。 Oracle 文档表明字符串参数是一个输出文件 this关联。但仍然不确定如何将参数传递到我的命令中。

最佳答案

根据 cmdline-jmxclient 文档: http://crawler.archive.org/cmdline-jmxclient/您必须使用逗号分隔的参数来传递给您的操作。

所以在你的情况下,如果是:

java -jar cmdline-jmxclient-0.10.3.jar admin:P@sSw0rd10.11.12.13:1111 com.sun.management:type=HotSpotDiagnostic dumpHeap test,true

请注意,cmdline jar 文件中存在一个错误,该错误未考虑 Java 原语(int、boolean、byte 等),并且会抛出 ClassNotFoundException,因为它无法通过原语名称找到.

如果您发现自己遇到此问题,您可以将补丁应用于此处记录的 jar 代码:https://webarchive.jira.com/browse/HER-1630 。或者只需将 jmx 端点代码中的类型字段从原始类型更改为 Wrapper 对象类型(int -> Integer)

关于java - 如何从命令行将参数传递到 JMX MBean 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55288546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com