Java Process.waitFor()不等待.bat文件完成并退出Windows 7上的进程-问题

时间:2018-09-13 09:58:27

标签: java batch-file

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();
    }

0 个答案:

没有答案