如何使用Jconsole监控Java程序?

时间:2014-03-09 08:52:14

标签: java multithreading jconsole

我编写了一个程序,使用2个线程打印1到200的数字。

现在我想使用JConsole监控这个程序。

基本上我想学习如何使用JConsole监视应用程序。

我搜索谷歌但找不到有用的东西。

我怎么能做到这一点?

当我在bin文件夹中启动jconsole.exe时。它要求输入主机名和端口号。 在我的情况下,我猜没有。 有人可以指导。

3 个答案:

答案 0 :(得分:9)

假设您在包Test下有一个类p1,您可以使用2个线程(要监视的数据)从1到200打印数字。

因此,要使用 jconsole 来监控您的应用程序,您需要先编译并执行代码,然后执行代码......

  • Start - > Run - > jconsole.exe并点击/按Enter

    enter image description here

  • 选择要监控的应用,然后点击Connect

    enter image description here

或者,您也可以将 VisualVM 用于此目的。

  • enter image description here

答案 1 :(得分:5)

您需要通过添加以下JMX参数来启用JVM

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=8484
-Dcom.sun.management.jmxremote.ssl=false

这些参数允许任何JMX监控工具访问和监控您的应用程序。

另外,我建议您使用visualVM更强大的工具。 visualVM的一些功能:

  • 提供CPU分析。
  • 提供有关主题的所有信息。
  • 提供JVM堆和内存状态。
  • 提供有关GC活动的信息。

答案 2 :(得分:1)

JConsole在JConsole启动时查找所有正在运行的应用程序。然后,只有当前运行的应用程序端口和主机才会显示在列表中。首先,您需要启动应用程序然后启动JConsole。