Linux中,
在 Java 程序启动后,tmp目录下会生成一个名为hsperfdata_用户名的文件夹,在这个文件夹中会有一些以 java 进程pid命名的文件。在我们使用jps命令查询进程信息的时候,实际上就是将这个文件夹下的文件列出来,因此当这个文件夹为空或者这个文件夹的所有者和文件所属组权限与运行 Java 程序的用户权限不一致时,jps命令就查询不到该进程了。
解决的方法:
修改文件夹的权限,或使用sudo jps命令以root权限执行jps命令。
window中:
可能存在以下两个目录下
(1)C:\Users\用户\AppData\Local\Temp\hsperfdata_用户
(2)C:\Windows\hsperfdata_用户
jps 只能查到第一个路径下的pid
若需要再HSDB下显示(2),直接填(2)路径下的pid
开启/关闭hsperfdata_用户名文件生成
-XX:+UsePerfData、-XX:-UsePerfData
HSDB 启动
Jdk1.8 启动 JHSDB 的时候必须将 sawindbg.dll(一般会在 JDK 的目录下)复制到对应目录的 jre 下
C:\Program Files\Java\jdk1.8.0_101\lib 进入命令行,执行 java -cp .\sa-jdi.jar sun.jvm.hotspot.HSDB