Java Process - 等待进程退出

时间:2018-06-12 15:59:01

标签: java

我试图在我的java程序中使用python脚本。 python,如果在java之外运行,则启动,然后等待事件,当事件发生时,执行某些操作,打印结果并退出。

当我尝试在Java中使用它时,它不会等待事件,而是立即以空响应退出。我怎么能等待脚本退出,所以挂起java程序直到它退出?

这是我正在测试的方法

public static String readRFID() throws IOException, InterruptedException {

        ProcessBuilder pb = new ProcessBuilder("python", "/home/pi/MFRC522-python/Read.py");
        Process p = pb.start();

         BufferedReader br=new BufferedReader(
            new InputStreamReader(
               p.getInputStream()));

         p.waitFor();
         StringBuilder sb = new StringBuilder();
            while(br.readLine() != null) {
                sb.append(br.readLine());
            }
           return sb.toString();

    }

1 个答案:

答案 0 :(得分:0)

  • waitFor() 肯定在读取循环之后;
  • 您需要关闭流程stdin;和
  • 您需要同时使用其stdoutstderr