如何用java关闭外部应用程序

时间:2012-08-27 10:57:39

标签: java

  

可能重复:
  Knowing which java.exe process to kill on a windows machine
  How to kill a process in Java, given a specific PID

我试图找出如何关闭特定的外部exe,即cwserv5.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();

    }

}

2 个答案:

答案 0 :(得分:5)

您可以通过执行关闭要关闭的流程的流程来执行此操作。

在您的评论中,我可以看到taskkill,这意味着您可能正在使用Windows。

Runtime rt = Runtime.getRuntime();

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

这将强制图像名称为cwserv5.exe的流程结束。

如果您不想强制结束,请不要使用/f标记。

有关taskkill的详细信息,请转到cmd(命令提示符)并输入taskkill /?

答案 1 :(得分: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
    }
相关问题