我使用的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格式的
解决方法就比较简单了,更换下TMP文件夹的路径(所在磁盘是NTFS格式的)即可。这里需要提的是,如果在目标JVM运行时候,添加vm启动参数
-XX:+PerfBypassFileSystemCheck也可以解决问题
java -Xms20M -Xmx20M -Xmn10M -XX:+PerfBypassFileSystemCheck -cp classes/ direct.TestDirectMemo