public class Kill
{
public static void main(String[] args) throws Exception
{
ProcessBuilder p = new ProcessBuilder("notepad.exe","fake.xml");
p.directory(new File("c:/temp/"));
System.out.println("Starting ...");
Process x = p.start();
System.out.println("Started ...");
System.out.println("Sleeping ...");
Thread.sleep(3000);
System.out.println("Woke up ...");
System.out.println("Destroying...");
x.destroy();
x.waitFor(); // If you don't wait for it then the application will be terminated as soon as it is started
System.out.println("Return value = " + x.exitValue());
System.out.println("Over ...");
}
}
一種方法是使用x.waitFor();
方法,並保持等待或者用戶操作殺死螞蟻過程或者它可以通過自身的結束。無論如何,你將需要x.destroy();
,並檢查使用x.exitValue()
成功和失敗。但在工作線程中使用它會更有意義,因爲UI將保持響應。
我同意約翰,你可能想使用某種線程。如果我是你,我會添加「Ant」和「MultiThreading」標籤。 – amccormack 2011-02-10 02:39:58
由於您不是要求殺死外部進程[也不是當前進程],所以我編輯了標記以反映您的問題。 – Fakrudeen 2011-02-10 07:34:03