java 遇到未知异常使程序崩溃,输出jvm的dump崩溃信息到指定文件,然后杀死此进程

来源:互联网 发布:vue.js验证手机号码 编辑:程序博客网 时间:2024/06/06 08:41

1.我们首先需要获取当前java进程的pid。方法为:

  //查看当前进程pid    private static void getPID(){        RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();        String name = runtime.getName();        System.out.println("当前进程的标识为:"+name);        int index = name.indexOf("@");        if (index != -1) {            int pid = Integer.parseInt(name.substring(0, index));            System.out.println("当前进程的PID为:"+pid);        }    }

假设该进程pid为8643
windows下执行命令:taskkill /pid 8436 /f 来强制终止该pid进程。
linux下执行:kill-9 8643来强制终止该pid进程

2.导出jvm中内存信息
jmap -dump:format=b,file=文件名 [pid]

3.java方法调用shell命令

  String cmds = "jmap -dump:format=b,file=e:/jmap/"+System.currentTimeMillis()+".hprof  "+pid;    Process pro = Runtime.getRuntime().exec(cmds);    pro.waitFor();    in = pro.getInputStream();    BufferedReader read = new BufferedReader(new InputStreamReader(in)); String result = read.readLine(); System.out.println(result); 上述代码就可以将制定pid的java进程的dump文件以文件的形式输出到制定目录下。 问题:在cmds命令中,hprof与pid之间一定要有空格。

4.有些linux系统可能不能执行jmap命令:此时需要yum安装即可。

yum install java-1.8.0-openjdk-devel-debug
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大便稀溏什么原因 什么是便溏 什么叫大便溏泄 溏泄是什么意思 大便溏泄者 什么是大便溏泄 溏泄 大便有点稀 便秘调理 孕妇便秘 便秘水果 便秘药 便秘症状 怀孕便秘 孕期便秘 便秘意思 孕晚期便秘 便秘严重 新生儿便秘 哺乳期便秘 一直便秘 便秘危害 经常便秘 便秘小妙招 慢性便秘 女生便秘 腹痛便秘 大便秘结 便秘啥意思 便秘的药 幼儿便秘 便秘 穴位 便秘食疗法 老年性便秘 减肥便秘 便秘吃啥药 顽固便秘 便秘吃什药 便秘食疗 便秘肚子疼 调理便秘