使用JVM管理工具jvisualvm,系统提示"无法检测到本地java应用程序"的原因和解决办法

我使用的JDK版本是1.6.0_37版本,操作系统是windows xp,今天想使用下%JAVA_HOME%/bin/目录下的一些管理工具,结果遇到麻烦了。使用JPS命令,无法列出本地运行的java虚拟机;使用jvisualvm,提示"无法检测到本地java应用程序"。

这个问题的原因可以看下:http://docs.oracle.com/javase/1.5.0/docs/guide/management/faq.html#win1

大概原因有2种:

1、操作系统的临时文件目录所在的磁盘格式不是NTFS(可以通过echo %TMP%命令查看)

2、操作系统用户名含有下划线underscore(可以通过echo %username%查看)


检查了下,我的情况是第一种:TMP目录所在的磁盘是FAT32格式的

使用JVM管理工具jvisualvm,系统提示"无法检测到本地java应用程序"的原因和解决办法_第1张图片

使用JVM管理工具jvisualvm,系统提示"无法检测到本地java应用程序"的原因和解决办法_第2张图片


解决方法就比较简单了,更换下TMP文件夹的路径(所在磁盘是NTFS格式的)即可。这里需要提的是,如果在目标JVM运行时候,添加vm启动参数

-XX:+PerfBypassFileSystemCheck也可以解决问题

java -Xms20M -Xmx20M -Xmn10M -XX:+PerfBypassFileSystemCheck -cp classes/ direct.TestDirectMemo


你可能感兴趣的:(jps无法列出本机java进程,无法检测到本地java应用程序)