启动JvisualVM提示"无法检测到本地java应用程序"的解决方案

时间:2023-01-21 12:17:22

JvisualVM是一款很好用的java程序检测工具。今天在公司用的时候,总是提示"无法检测到本地java应用程序",起初以为是jdk的版本不对,我的jvisualvm是在jdk7里面的,java程序使用的是jdk6,改了之后还是出现这个提示。

网上搜索了一下,找到了很多办法,找到了一个比较简单的办法。

       在启动java程序的时候添加一个参数即可:

1 -XX:+PerfBypassFileSystemCheck

       找了点资料,正好在OSC看到一位网友@钛元素的回答:

      在 Win32 系统上,每个 java 进程启动之后都在 %TMP%\hsperfdata_user ( user 为当前登录用户名)目录下建立一个以该 java 进程 pid 为文件名的文件,用以记录该 java 进程的一些信息。而 jconsole 和 jps 正是利用这些文件来获取当前系统中 java 进程的信息的。根据

http://java.sun.com/j2se/1.5.0/docs/guide/management/faq.html#win1   

的解释,如果该目录位于 FAT 文件系统下,或者位于 NTFS 文件系统下,但当前用户对%TMP%\hsperfdata_user目录的访问权限不足,无法创建和写入该文件,jconsole 和 jps 就抓瞎了。


转载链接:http://my.oschina.net/building/blog/74626