码迷,mamicode.com
首页 > 其他好文 > 详细

jmap -heap报错问题解决:unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap

时间:2019-03-21 20:24:37      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:intern   ack   因此   选择   exce   int   装包   方法   debuginfo   

问题:

在使用java-1.8.0-openjdk环境查看JVM使用情况的时候,遇到了如下报错:

Heap Usage:
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.tools.jmap.JMap.runTool(JMap.java:201)
    at sun.tools.jmap.JMap.main(JMap.java:130)
Caused by: java.lang.RuntimeException: unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap
    at sun.jvm.hotspot.tools.HeapSummary.run(HeapSummary.java:157)
    at sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:260)
    at sun.jvm.hotspot.tools.Tool.start(Tool.java:223)
    at sun.jvm.hotspot.tools.Tool.execute(Tool.java:118)
    at sun.jvm.hotspot.tools.HeapSummary.main(HeapSummary.java:50)
    ... 6 more

技术图片

 

解决:

经过多方查询找到了原因:这里-heap参数会调用用到了sun.jvm下的debug包,而默认openJDK的安装中不包含!

解决方法:

下载并安装一个java-openjdk-debug插件!而且需要和openjdk小版本也一致!!!

下载地址:http://debuginfo.centos.org/7/x86_64/

查看系统自身的openjdk版本:

技术图片

这里我因为找不到和小版本一致的安装包,因此首先就将其卸载了(蛇皮操作)!!

yum -y erase java-1.8.0-openjdk-devel-1.8.0.201.b09-2.el7_6.x86_64
yum -y erase java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64

 然后选择能够找到findbug的版本安装:

yum -y install java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64
yum -y install java-1.8.0-openjdk-devel-1.8.0.191.b12-1.el7_6.x86_64

下载并安装对应版本的findbugs插件:

wget http://debuginfo.centos.org/7/x86_64/java-1.8.0-openjdk-debuginfo-1.8.0.191.b12-1.el7_6.x86_64.rpm
rpm -ivh java-1.8.0-openjdk-debuginfo-1.8.0.191.b12-1.el7_6.x86_64.rpm

 安装完成后成功解决报错问题!!!

jmap -heap报错问题解决:unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap

标签:intern   ack   因此   选择   exce   int   装包   方法   debuginfo   

原文地址:https://www.cnblogs.com/liuguangjiji/p/10573961.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!