Java jmap与jcmd命令dump内存heap堆

时间:2025-02-18 07:53:20
        //获取当前Java程序的进程id
        long pid = ().pid();

        //jmap与jcmd两种命令方式效果相同,均为dump内存
        String[] cmd1 = {"jmap", "-dump:live,formt=b,file=D:/dump/", (pid)};
        String[] cmd2 = {"jcmd", (pid), "GC.heap_dump", "D:/dump/"};

        try {
            ().exec(cmd1);
            ().exec(cmd2);
        } catch (IOException e) {
            ();
        }

        try {
            //等待输入任意按钮结束程序。如果没有这一段代码,程序很快返回后,dump内存来不及处理,没有日志输出。
            ();
        } catch (IOException e) {
            ();
        }