最近看JDK的命令行工具,使用Java VisualVM和Jconsole工具都可以监控java程序的运行情况(包括CUP和内存等的使用情况,线程的运行状态等)
在Java VisualVM 工具里可以直接看到本地运行的java程序(比如Eclipse)的运行状态
如果需要需要监控在tomcat中运行的web应用程序的运行状态的话就要打开tomcat的JMX支持
按照网上的说法,在tomcat 的bin目录下的catalina.bat文件中加入下面一段话(注意不要换行,10000是我自己设置的JMX的端口号,可以更改):
set JAVA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
但是我折腾了一天也没有成功(使用 netstat -ano 命令不会显示10000端口被占用,在 Java VisualVM中也不能连上)
后来发现原因是我的tomcat被安装为windows的服务了,如果单独启动tomcat的bin目录下的startup.bat是可以启动JMX的
使用这种方法来开启JMX是不需要输入账号密码的,若果需要使用账号密码认证的话(比如在生产环境)请参考网上其他文章
另外,除了在Catalina.bat里边添加上边一段话这种方法之外还可以用另外一种方法:在tomcat的bin目录下新建 setenv.bat,文件的内容还是上边加粗的黑色字体
的内容(和在catalina.bat文件中添加的不同是不用考虑这段话放的位置)
原文:http://www.cnblogs.com/jiaoyiping/p/3978256.html