杀死excel进程而不保存

我有这个代码,正确地杀死任何正在运行的Excel进程。

public static void killExcel(){ while (isProcessRuning("EXCEL.EXE")){ Runtime.getRuntime().exec("taskkill /IM EXCEL.EXE"); } } public static boolean isProcessRuning(String serviceName) throws Exception { Process p = Runtime.getRuntime().exec(TASKLIST); BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = reader.readLine()) != null) { if (line.contains(serviceName)) { return true; } } return false; } 

我的问题是如果Excel文件提示保存问题,我有一个无限循环。

你有没有尝试使用/ f选项运行taskkill强行杀死? 在这里看到更多的细节。

如果可以,使用默认选项来允许Excel很好地退出可能更合适。 如果没有退出,则返回到强制变体。 如果需要,进程通常会退出。 如果不是这样,这可能是一个很好的理由。

你有一个无限循环的原因是因为它是在一个while循环,你应该把它放在一个if语句。 这样,它不会循环。 如果一切都失败,那么使用/ f。

尝试这个

 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); } } 
Interesting Posts