2012-12-11 57 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); 
    } 
}