2

重複の可能性:
Windows マシンでどの java.exe プロセスを強制終了するかを知る
特定の PID を指定して、Java でプロセスを強制終了する方法

cwserv5.exe という特定の外部 exe を閉じる方法を見つけようとしています。新しい外部exeを起動して閉じることに成功しましたが、既存のプロセスではありません。手伝ってくれますか?以下は私がいじっていたものですが、正直に言うと本当に失われました

package com.TestCase;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class ReStartEXE {

    static Process pr; 

    public static void open() {

        //ProcessBuilder

         try {
             Runtime rt = Runtime.getRuntime();
             //Process pr = rt.exec("cmd /c dir");
              pr = rt.exec("C:\\APPLEGREEN\\webserv\\cwserv5rost.exe");         

             Thread.sleep(10000);
             //pr.wait(10000);
            //pr.waitFor();

             BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));

            // String line=null;

             /*while((line=input.readLine()) != null) {
                 System.out.println(line);
             }*/

             //int exitVal = pr.waitFor();
             //pr.destroy();
           // Process.kill(pr);
            // Runtime.getRuntime().exec("taskkill /F /IM cwserv5rost.exe");

             //System.out.println("Exited with error code "+exitVal);

         } catch(Exception e) {
             System.out.println(e.toString());
             e.printStackTrace();
         }
     }


    public static void Close() {

        pr.destroy();

    }

}
4

2 に答える 2

7

これを行うには、プロセスを実行して、閉じたいプロセスを閉じます。

あなたのコメントにはtaskkill、おそらく Windows を使用していることがわかります。

Runtime rt = Runtime.getRuntime();

rt.exec("taskkill /F /IM cwserv5.exe");

これにより、イメージ名のプロセスが強制的cwserv5.exeに終了します。

強制的に終了させたくない場合は、/fタグを使用しないでください。

の詳細についてはtaskkillcmd(コマンド プロンプト) に移動し、 と入力してくださいtaskkill /?

于 2012-08-27T11:02:38.270 に答える
1

これを試して、

    Process proc = rt.exec("taskkill /F /IM cwserv5.exe");
    BufferedReader input = new BufferedReader(new InputStreamReader(proc.getInputStream()));
    while ((line = input.readLine()) != null){
         //do something
     }
    input.close();
    code = proc.exitValue();
    if(code==0){
        //success
    }
    else{
        //failure
    }
于 2012-08-27T11:03:41.753 に答える