我需要确定在远程计算机上运行的JVM列表,一旦完成,就可以使用JMX连接到每个JVM。我是新手,并且经历了以下概念:
1.使用jps和jstat:我读到这些命令可能在将来的jdk版本中不可用
2.使用java类“virtualmachine()。list”。但问题在于它可以帮助您获取JVM列表,但仅适用于本地计算机。我不知道如何连接到远程计算机,然后获取此列表。
任何人都可以建议如何使用“virtualmachine()。list”或任何其他方法来获取远程计算机上的JVM列表?
问题是我研究连接到远程JVM的所有方法(包括jconsole的工作方式)都集中在SPECIFIC JVM,我需要提供端口号(JVM进程)。但是我需要一个运行所有JVM的列表。我怎样才能做到这一点 ?它甚至可能吗?
答案 0 :(得分:1)
一种选择是在远程计算机上启动一个小型Java应用程序,让它运行virtualmachine()。list或类似的,然后发回信息或使用JMX使其可访问。此应用程序可能一直在运行,或者您可以远程启动它。
此处提到的其他一些想法:Get System Information of a Remote Machine (Using Java)。
答案 1 :(得分:0)
您可以为每个远程JVM添加一个java-agent或其他一些公共组件,并将它们“phone-home”的JMXServiceURL添加到中央JVM清算中心。除此之外,我认为您的唯一选择大致来自monex0的建议。