Java Process.waitFor()不等待.bat文件完成并退出Windows 7上的进程,但在Linux上可以正常运行.sh文件
我正在研究Java Process,应该从Windows调用.bat
文件。我在linux内部开发了此代码,并且在我以5秒钟的睡眠时间调用文件时在linux上可以正常工作,但在Windows上却可以正常工作。它是同时锁定和删除过程的,无需等待5秒钟。
能否请您研究一下代码并帮助我弄清楚如何有效地处理bat文件?
public int processOutput(String absoluteFilePath, String phoneNo) throws IOException, InterruptedException {
ProcessBuilder builder = new ProcessBuilder(absoluteFilePath);
Map<String, String> map = builder.environment();
map.put("phone_number", phoneNo);
builder.redirectErrorStream(true);
Process process = builder.start();
try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
String line = "";
while ((line = reader.readLine()) != null) {
LOG.info(line);
}
LOG.info("Process Ended");
}
return process.waitFor();
}