JConsole中为什么看不到本地的Tomcat进程?

启动Tomcat,JConsole 的“本地进程”列表中,为什么独独没有Tomcat呢?

无论是在控制台用Startup.bat启动,或者是在Eclispe中用Tomcat插件启动,都看不到。

JConsole 的“本地进程”列表是根据什么查找本地Java进程的?Tomcat为什么出不来?

知道的麻烦指点一下,非常感谢!

[img]http://dl2.iteye.com/upload/attachment/0091/2231/14b81b73-bff4-3510-9807-c0479e411e14.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0091/2233/ec5895ca-448e-3ca6-9ec8-40364cfe7738.png[/img]

iteye_9831
iteye_9831 根据jinnianshilongnian 和chainhou 的回复,小结一下: 在windows平台下,JVM启动时,默认的java.io.tmpdir取自环境变量中tmp的值。 普通的java程序更改tmpdir采用:-Djava.io.tmpdir="f:/temp"之类 JConsole更改tmpdir采用:-J-Djava.io.tmpdir="f:/temp" (-J是Jconsole的参数) JConsole查找本地Java进程和临时文件夹下的特定目录有关。
接近 7 年之前 回复

3个回答

关于Jconsole查找本地的java进程,其依据是所有本地启动的java进程,都会有一个相应的vmid,一般情况下和任务管理器中列出的pid相同。可以通过命令行中使用jps命令查看当前运行的java进程和其对应的vmid.

启动Java进程之后,会在默认的临时目录下新建一个文件,文件名称即该JAVA进程的vmid.
JConsosle能列出的所有本地进程,都是读该目录下的文件得到的。
例如我的系统是Win7,默认临时目录是:C:\Users\【用户名】\AppData\Local\Temp\hsperfdata_【用户名】
在该目录下存放所有本地java进程文件。

如果你在启动的时候将临时目录改了,JConsole应该就列不出来了。你可以在该目录下查看是否有tomcat的vmid对应的进程文件,以及在代码中通过

[code="java"]String str = System.getProperty("java.io.tmpdir"); [/code]查看具体的临时目录被改到哪了,希望可以帮到你。

iteye_9831
iteye_9831 非常感谢。你说的很对。
接近 7 年之前 回复
iteye_9831
iteye_9831 感谢!
接近 7 年之前 回复

改用 jvisualvm试试呢 ?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐