Windows下jmap命令报错问题
程序员文章站
2024-01-05 15:14:16
最近换了笔记本,新的工作环境下jmap命令居然在报错,而jps、jstat、jinfo、jstack都能正常使用,所以初步排除进程号的问题。 同时,又试了下 一个不存在的进程号(这里先埋个坑),还是报同样的错误,根据异常栈的信息,怀疑是Windows下的命令行没有 ......
最近换了笔记本,新的工作环境下jmap命令居然在报错,而jps、jstat、jinfo、jstack都能正常使用,所以初步排除进程号的问题。
attaching to core 17536 from executable heap, please wait... error attaching to core file: windbg error: opendumpfile failed! sun.jvm.hotspot.debugger.debuggerexception: windbg error: opendumpfile failed! at sun.jvm.hotspot.debugger.windbg.windbgdebuggerlocal.attach0(native method) at sun.jvm.hotspot.debugger.windbg.windbgdebuggerlocal.attach(windbgdebuggerlocal.java:160) at sun.jvm.hotspot.hotspotagent.attachdebugger(hotspotagent.java:673) at sun.jvm.hotspot.hotspotagent.setupdebuggerwin32(hotspotagent.java:569) at sun.jvm.hotspot.hotspotagent.setupdebugger(hotspotagent.java:335) at sun.jvm.hotspot.hotspotagent.go(hotspotagent.java:304) at sun.jvm.hotspot.hotspotagent.attach(hotspotagent.java:156) at sun.jvm.hotspot.tools.tool.start(tool.java:191) at sun.jvm.hotspot.tools.tool.execute(tool.java:118) at sun.jvm.hotspot.tools.pmap.main(pmap.java:72) 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)
同时,又试了下jmap heap xxx
一个不存在的进程号(这里先埋个坑),还是报同样的错误,根据异常栈的信息,怀疑是windows下的命令行没有管理员权限,无法访问dump文件,所以试了下以管理员运行cmd,然后jmap heap,然而还是报同样的错:
这下无助了,百度、*逛了一圈也没找到解决问题的办法.....先放一放?
=
==============================华丽丽的分隔符==============================
=
大概过了不知道多久,猛地想起来 - - “是不是命令没敲对?”,jmap -h
走一波,仔细看截图中红框内容,然后羞愧的低下了头(一定是中秋月饼吃多了才导致的,嗯!)
如图jmap有三种用法,1、连接正在运行的进程 2、分析core文件,即dump文件 3、连接其他机器的jvm进程所以,上面jmap heap xxx
命令的问题就出在搞忘记加 " - " 了,被jmap当作是要分析 “heap” 这个快照文件了,报错也就理所应当了。
总结:
jdk自带的工具包中,像jps、jmap、jstack等这些命令,指定option
一般都是要带 “ - ” 的,而紧跟的参数是不带杠的,这点需要牢记。还有就是报异常了不要慌,一定要仔细读异常提示信息和异常栈,拿本例来说,其实第一行已经提示清楚了(小小吐槽下:要是把文件名也打印出来就更好了)
推荐阅读
-
Windows下jmap命令报错问题
-
windows下apache的多个虚拟主机中间问题
-
请教windows下配置php的memcache的问题
-
windows下zendframework项目环境搭建(通过命令行配置)_php技巧
-
Windows7下如何在命令行使用MySQL_MySQL
-
在windows下系统中安装pycrypto常见问题解决
-
有关在Windows下配置PHP Apache Optimizer失败的问题解决方案_PHP
-
windows internet explorer Windows下利用Gvim写PHP产生中文乱码问题解决方法
-
Windows下利用Gvim写PHP产生中文乱码问题解决方法
-
Windows下用Nginx配置https服务器及反向代理的问题