0

「jmap -dump:format =b;」を実行しようとしました。file」コマンドをruntime.exec()に追加しましたが、date、pwdなどの他のコマンドが正常に機能している場所では実行されません。誰でも理由を知ることができますか?

public static void コマンド (文字列 s) {

    runtime=Runtime.getRuntime();


    try {
        System.out.println(" Creating Heap Dump ");
        process=runtime.exec("jmap -dump:format=b,file=D:/heapdump_2012APR10/heapdump_date +%d%b%Y-%H_%M_%S.bin 4478");
        System.out.println("Heap Dump Created. Zipping the file");
        process=runtime.exec("gzip *.bin");
        System.out.println("Succesfully zipped");



    } catch (Exception e) {
        e.printStackTrace();
    }
}
4

1 に答える 1

0

2 つのプロセスを連続して呼び出す

process=runtime.exec("jmap -dump:format=b,file=D:/heapdump_2012APR10/heapdump_date +%d%b%Y-%H_%M_%S.bin 4478");
process=runtime.exec("gzip *.bin");

最初のものが終了するのを待たずに。

そして、実行したプロセスのストリームを消費したり、プロセスの終了コードをチェックしたりすることはありません。

@Andrew Thompson の提案に従い、この記事を読んでください。Java から外部プロセスを起動する方法を非常によく説明しています。

于 2012-04-16T04:19:28.490 に答える