1.情景再现
环境:window + tomcat6.0 + jdk5
cmd运行jdk的bin目录下的jconsole,列表中无可监控的进程。
2.jdk5自带jconsole使用配置
1)使用startup.bat启动tomcat
a.catalina.bat文件中CATALINA_OPTS属性值中添加"-Dcom.sun.management.jmxremote"。(注意:修改catalina.bat后如果不用startup.bat启动的话,可能catalina.bat的修改不会被应用。)
2)在Myeclipse启动tomcat
在Window -> Preference -> Myeclipse Enterprise Workbench -> Servers -> Tomcat -> Tomcat6.x -> JDK -> Optional JVM arguments输入框中添加"-Dcom.sun.management.jmxremote"。(注意:使用Myeclipse启动时,catalina.bat里的配置是不会被使用的,所以必须勤快得完成以上操作不得偷懒。)
3.使用JDK5 jconsole.exe会遇上错误:
Q1)Unable to attach to <PID>: Could not map vmid to user name(大致意思是运行该进程的用户不是当前用户)
A1)请打开任务管理器,查看运行tomcat或者javaw.exe的运行用户是谁,一种是更改当前用户登录,一种是更改运行用户。
Q2)<pid> is not a managed VM.
A2)请按照"2.jdk5自带jconsole使用配置"完成配置或者检查是否配置与启动位置一致。
感谢前辈们提供的宝贵资料~
参考资料:
http://stackoverflow.com/questions/4468657/cannot-run-jconsole