2012-01-15 77 views
1

我試圖在我的計算機上la一些蝙蝠文件, 我正在使用Process.exec來執行它。 問題是bat文件啓動另一個進程,並且我的程序正在等待它完成,但我需要我的程序停止,儘管子進程仍在運行。 下面是我想要做的一個例子,在這段代碼中,我正在開發記事本,程序一直卡住,直到我手動關閉notepd窗口 - 所以我應該爲我的程序做些什麼來結束記事本會繼續運行嗎?Java - 如何啓動和忘記進程

public static Process test3() throws IOException 
    { 
    Process p; 
    try 
     { 
     p = Runtime.getRuntime().exec("notepad"); 
     } 
    catch (IOException e) 
     { 
     return null; 
     } 
     try 
     { 
     p.waitFor(); 
     } 
     catch (InterruptedException e) 
     { 
     Thread.currentThread().interrupt(); 
     } 


    p.getInputStream().close(); 
    p.getOutputStream().close(); 
    p.getErrorStream().close(); 

    return p; 
    } 
+0

http://stackoverflow.com/questions/931536/how-do-i-launch-a-completely-independent-process-from-a-java-program – Mikhail 2012-01-15 06:59:24

回答

0

如果你在Windows中運行,試試這個:

Runtime.getRuntime().exec("cmd /c start notepad"); 
+3

向下投票,下次發表評論! (那是什麼錯誤?) – aviad 2012-01-15 08:16:34

+0

@aviad:太真實了,我們必須總是說出理由。問候 – 2012-01-15 08:34:09

0

可能,這將幫助:

public class ExternalProcess 
{ 
    public static void main(String... args) throws Exception 
    { 
     Process p = Runtime.getRuntime().exec("Notepad"); 
     p.getInputStream().close(); 
     p.getOutputStream().close(); 
     p.getErrorStream().close(); 
     System.exit(0); 
    } 
} 

只需使用System.exit(0);

Regards

0

我建議你看看ProcessBuilder類以獲得更大的靈活性!