我对此代码有疑问:
try {
log.info("init");
ProcessBuilder pb;
Process p;
pb = new ProcessBuilder("cmd.exe", "/C", path+"\\test.docx");
p = pb.start();
p.waitFor();
log.info("final");
}
它有效,但当我的机器中有另一个打开的word文件时,该过程不会等待。
单词文件 test.docx 打开,但在关闭之前打印“final” 。
如果我在机器中没有另一个打开的word文件,则打印“final” 后我关闭了 teste.docx (As它应该是)。
我试着这样修理:
p = Runtime.getRuntime().exec("cmd /c start /wait "+path+"test.docx");
或
pb = new ProcessBuilder("cmd.exe", "/C","start" ,"/B","/belownormal","/WAIT", path+"\\test.docx").redirectErrorStream(true);
但没有任何作用,任何想法?