1

我需要确定在远程机器上运行的 JVM 列表,一旦完成,使用 JMX 连接到每个 JVM。我是新手,经历过以下概念:
1. 使用 jps 和 jstat:我读到这些命令在未来的 jdk 版本中可能不可用。
2.使用java类“virtualmachine().list”。但问题在于它可以帮助您获取 JVM 列表,但仅适用于本地机器。我不知道如何连接到远程机器然后获取这个列表。

谁能建议如何使用“virtualmachine().list”或任何其他方法来获取远程机器上的 JVM 列表?

问题是我研究的连接到远程 JVM 的所有方法(包括 jconsole 的工作方式)都集中在一个特定的 JVM 上,我需要在其中提供端口号(JVM 进程的)。但我需要一份所有正在运行的 JVM 的列表。我怎样才能做到这一点 ?甚至可能吗?

4

2 回答 2

1

一种选择是在远程机器上启动一个小型 Java 应用程序并让它运行 virtualmachine().list 或类似的,然后发回信息或使用 JMX 使其可访问。此应用程序可能一直在运行,或者您可以远程启动它。

这里提到的其他一些想法:Get System Information of a Remote Machine (Using Java)

于 2012-12-20T21:47:25.537 回答
0

您可以向每个远程 JVM 添加一个 java-agent 或其他一些通用组件,并让它们将其 JMXServiceURL“回拨”到中央 JVM 票据交换所。除此之外,我认为您唯一的选择广泛来自monex0的建议。

于 2012-12-20T22:10:22.807 回答