如何使用 Jconsole 监控 Java 程序?
Posted
技术标签:
【中文标题】如何使用 Jconsole 监控 Java 程序?【英文标题】:How to monitor a Java program using Jconsole? 【发布时间】:2014-04-12 09:06:16 【问题描述】:我编写了一个程序,使用 2 个线程打印从 1 到 200 的数字。
现在我想使用 JConsole 监控这个程序。
基本上我想学习如何使用 JConsole 来监控应用程序。
我搜索了谷歌,但找不到有用的东西。
我怎样才能做到这一点?
当我在 bin 文件夹中启动 jconsole.exe
时。它要求提供主机名和端口号。
就我而言,我猜没有。
谁能指导一下。
【问题讨论】:
【参考方案1】:您需要通过添加以下JVM
参数来启用JMX
:
-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
的一些功能:
【讨论】:
我应该在哪里添加这些行? 如果你使用Eclipse IDE
,那么Right click on your project -> Properties -> Run/Debug Settings -> Select your launcher class -> Arguments tap
启动你的应用程序,开始jconsole
,你会找到一个你的应用程序进程。
欢迎,如果解决了您的问题,请不要忘记接受它作为答案:)。【参考方案2】:
假设您在包 p1
下有一个类 Test
,您可以在其中使用 2 个线程(您想要监控)打印从 1 到 200 的数字。
所以要使用 jconsole 来监控您的应用程序,您需要先编译并执行您的代码,并且在您的代码执行时...
Start
-> Run
-> jconsole.exe
并点击/按下Enter
选择您要监控的应用程序,然后点击Connect
。
或者,您也可以使用 VisualVM 来实现此目的。
【讨论】:
【参考方案3】:JConsole 在 JConsole 启动时查找所有正在运行的应用程序。然后列表中只会显示当前运行的应用程序端口和主机。因此,首先您需要启动应用程序,然后启动 JConsole。
【讨论】:
以上是关于如何使用 Jconsole 监控 Java 程序?的主要内容,如果未能解决你的问题,请参考以下文章