使用java终止office进程
default需要jdk大于等于1.8,否则需要重写convertStr()方法
import lombok.extern.slf4j.Slf4j;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.stream.Collectors;
@Slf4j
public class KillUtils {
private static final String kill_wscript = "taskkill /f /t /im wscript.exe";
private static final String kill_WINWORD = "taskkill /f /t /im WINWORD.exe";
private static final String kill_POWERPNT = "taskkill /f /t /im POWERPNT.exe";
private static final String kill_EXCEL = "taskkill /f /t /im EXCEL.exe";
public static void main(String[] args) throws IOException {
killOffice();
}
public static synchronized void killOffice() throws IOException {
log.info("------------------------start------------------------");
Process wscript = Runtime.getRuntime().exec(kill_wscript);
Process winword = Runtime.getRuntime().exec(kill_WINWORD);
Process powerpnt = Runtime.getRuntime().exec(kill_POWERPNT);
Process excel = Runtime.getRuntime().exec(kill_EXCEL);
convertStr(wscript, kill_wscript);
convertStr(winword, kill_WINWORD);
convertStr(powerpnt, kill_POWERPNT);
convertStr(excel, kill_EXCEL);
log.info("------------------------end------------------------");
}
private static void convertStr(Process process, String name) {
String inputMsg = new BufferedReader(process.inputReader()).lines().collect(Collectors.joining("\n"));
log.info(name + "--input:{}", inputMsg);
String errorMsg = new BufferedReader(process.errorReader()).lines().collect(Collectors.joining("\n"));
log.info(name + "--error:{}", errorMsg);
}
}