2012-12-11 73 views
3

我有這個代碼可以正確地殺死任何正在運行的Excel進程。殺死excel過程而不保存

我的問題是,如果Excel文件提示保存問題,我有一個infinit循環。

+7

請不要破壞用戶的電子表格。 – SLaks

+0

killall -9 excel(: –

+0

@SLaks,我的Java應用程序與服務器上的vba腳本進行交互,沒有涉及用戶,我只想確保所有vba錯誤和Excel都處於關閉狀態 – outellou

回答

5

您是否嘗試過使用/ f選項運行taskkill以強制殺死?有關更多詳細信息,請參閱here

使用默認選項允許Excel可以很好地退出可能更合適。如果它不退出,則恢復到強制變體。如果需要,進程通常會退出。如果不是,這可能是一個很好的理由。

+1

我使用了「taskkill/f/t/IM excel.exe「,看起來這些選項的」/ f/t「必須用於」/ IM「才能工作 – outellou

0

你有一個無限循環的原因是因爲它在while循環中,你應該把它放在一個if語句中。這樣,它不會循環。如果一切都失敗,則使用/ f。

0

試試這個

public static void killExcel() { 
    try { 
     Runtime.getRuntime().exec("taskkill /f /t /IM EXCEL.EXE"); 
     Thread.sleep(1000); 
    } 
    catch (IOException | InterruptedException ex) { 
     Logger.getLogger(ClassName.class.getName()).log(Level.SEVERE, null, ex); 
    } 
}