问题
使用jmap -heap命令查看堆的详细信息报错:Caused by: java.lang.RuntimeException: unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap
原 因
jmap -heap pid 命令的-heap参数会调用到sun.jvm下的debug包,而默认安装的openJDK中不包含!
解决方式
下载安装一个java-openjdk-debug插件,注意 需要和openjdk小版本也一致!
1.安装debuginfo
去网站http://debuginfo.centos.org/7/x86_64里面找到匹配当前openjdk版本的rpm包。然后使用wget命令下载
wget http://debuginfo.centos.org/7/x86_64/java-1.8.0-openjdk-debuginfo-1.8.0.212.b04-0.el7_6.x86_64.rpm
2.使用rpm命令安装
rpm -ivh java-1.8.0-openjdk-debuginfo-1.8.0.212.b04-0.el7_6.x86_64.rpm
3.查看是否安装了debuginfo
至此,就可以使用jmap -heap pid命令了
参考地址: