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

问题:

在使用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_64yum -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_64yum -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.rpmrpm -ivh java-1.8.0-openjdk-debuginfo-1.8.0.191.b12-1.el7_6.x86_64.rpm

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

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

时间: 2024-10-07 00:46:34

jmap -heap报错问题解决:unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap的相关文章

解决MySQL8.0报错:Unknown system variable 'validate_password_policy'

一.问题描述 1.在安装MySQL8.0时,修改临时密码,因密码过于简单(如:123456),不符合MySQL密码规范,会触发一个报错信息: ERROR 1819 (HY000): Your password does not satisfy the current policy requirements. 二.遇到问题 1.解决办法调整MySQL密码验证规则,修改 policy 和 length 的值. 2.MySQL 5.7 进行如下设置,即可解决问题: mysql>  set global

【JVM】【linux】linux上执行jmap命令查看JVM内存使用情况,报错:sun.jvm.hotspot.debugger.NoSuchSymbolException: Could not find symbol "gHotSpotVMTypes" in any of the known library name

运行命令: jmap -heap 6709 报错如下: Attaching to process ID 6709, please wait... sun.jvm.hotspot.debugger.NoSuchSymbolException: Could not find symbol "gHotSpotVMTypes" in any of the known library names (libjvm.so, libjvm_g.so, gamma_g) at sun.jvm.hotsp

mysql报错问题解决Character set 'utf8mb4' is not a compiled character set

mysql: Character set 'utf8mb4' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file 报错的解决方法 1.由于日常程序使用了字符集utf8mb4,为了避免每次更新时,set names utf8mb4,就把配置文件改了,如下: 增加了mysql客户端的默认字符集设置 [[email protected]~]# vim

ceph升级到10.2.3 版本启动服务报错:Unknown lvalue 'TasksMax' in section 'Service'

#### ceph软件包升级完成,执行命令重启服务 sudo systemctl restart [email protected]"$HOSTNAME" #### 故障现象 服务可以启动,启动后显示有报错信息: Nov 23 17:14:45 ceph-6-12 systemd[1]:        [/usr/lib/systemd/system/[email protected]:18] Unknown lvalue 'TasksMax' in section 'Service'

Android开发之自定义Dialog二次打开报错问题解决

之前自定义了一个AlertDialog对话框,第一次点击时正常,但第二次调用时会出现错误:java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. 关于这个错误纠结了我好久,在网上百度了也不少,但感觉解决效果都达不到自己想要的效果.网上的解释说是一个子视图指定了多个父视图.由此可以推断出,在第二

mysql报错: Unknown character set: 'utf8mb4'

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown character set: 'utf8mb4' at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImp

Mysql报错 :Unknown table engine 'InnoDB'  

问题: zabbix服务器重启后,进入zabbix的web发现登录不进去并且网页报mysql的错误,查看mysql的日之后,发现报错: [[email protected] ~]# tail -f /var/log/mysqld.log 140820 16:24:43 [Note] /usr/libexec/mysqld: ready for connections. Version: '5.1.73'  socket: '/var/lib/mysql/mysql.sock'  port: 33

python报错问题解决:'ascii' codec can't encode character

python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错,python没办法处理非ascii编码的,此时需要自己设置将python的默认编码,一般设置为utf8的编码格式. 查阅网上,可以在程序中修改所有涉及到编码的地方,强制编码为utf8,即添加代码encode("utf8"),这种方法并不推荐使用,因为一旦少写一个地方,将会导致大量的错误报告. 解决方案: 在python的lib\site-packages文件夹下新建一个si

navicat报错2005 - Unknown MySQL server host 'localhost' (0) 原因及解决方法

报错原因:没有连接互联网,用navicat连接本地mysql数据库,连接属性ip为localhost. 解决办法:将ip改为127.0.0.1即可.localhost是需要DNS解析后才会是127.0.0.1的. navicat报错2005 - Unknown MySQL server host 'localhost' (0) 原因及解决方法 原文地址:https://www.cnblogs.com/Y-zhiwei/p/8458238.html