问题描述:
今天在学习jvm过程中使用jmap命令查看堆内存时报错,报错信息如下所示:
Attaching to process ID 24284, please wait...
Error attaching to process: Doesn't appear to be a HotSpot VM (could not find symbol "gHotSpotVMTypes" in remote process)
sun.jvm.hotspot.debugger.DebuggerException: Doesn't appear to be a HotSpot VM (could not find symbol "gHotSpotVMTypes" in remote process)
at sun.jvm.hotspot.HotSpotAgent.setupVM(HotSpotAgent.java:411)
at sun.jvm.hotspot.HotSpotAgent.go(HotSpotAgent.java:305)
at sun.jvm.hotspot.HotSpotAgent.attach(HotSpotAgent.java:140)
at sun.jvm.hotspot.tools.Tool.start(Tool.java:185)
at sun.jvm.hotspot.tools.Tool.execute(Tool.java:118)
at sun.jvm.hotspot.tools.HeapSummary.main(HeapSummary.java:49)
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)
问题排查:
查看控制台时候发现运行时候使用的jdk不是本机安装的jdk,改jdk版本为1.8.0_292
这是我本机安装的jdk版本
解决方法:
将jdk1.8的路径改为本地jdk安装的路径
换成自己本地安装的jdk,点击应用,重启项目
再次输入命令,查看成功
问题总结:
因为我们在idea中运行客户端,使用的jdk版本是我们本地安装的jdk,而运行环境使用的jdk版本和我们安装的版本不同,所以会出现上面的错误