有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    • waitFor()应该肯定在读循环之后
    • 您需要关闭进程的stdin;及
    • 你需要消耗所有的stdoutstderr