Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java BufferedReader readLine()正在等待从进程inputStream读取数据_Java_Bufferedreader_Readline_Runtime.exec_Inputstreamreader - Fatal编程技术网

Java BufferedReader readLine()正在等待从进程inputStream读取数据

Java BufferedReader readLine()正在等待从进程inputStream读取数据,java,bufferedreader,readline,runtime.exec,inputstreamreader,Java,Bufferedreader,Readline,Runtime.exec,Inputstreamreader,我正在使用通用代码读取流程的标准输出: Process p = Runtime.getRuntime().exec("gradlew assembleRelease", null , new File(this.workDir)); BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())); String line

我正在使用通用代码读取流程的标准输出:

        Process p = Runtime.getRuntime().exec("gradlew assembleRelease", null , new File(this.workDir));            
        BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line = null;     
        while ((line = input.readLine()) != null) {
            standardOutput.writeln(line);
        }
        input.close();
到目前为止,它一直运作良好。它使用我的函数standardOutput.writeln(第行)将输出存储到txt文件中。最近我更新了我的服务器,用Gradle2.8进行编译,现在我遇到了一个非常严重的问题。当gradle失败时,input.readLine()函数将永远等待。我不明白为什么。它卡在那条线上了。我找不到任何解释。我认为这可能是因为readLine正在等待a/n停止读取,新的gradle输出可能存在一些问题,但我不确定这是否是问题所在


如何解决这个问题

最终的解决方案是在两个分开的线程中读取标准输出和错误输出,进程在读取标准输出时试图写入错误输出…

“当gradle失败时”,它告诉您在标准输出流中,而不是在错误流中?它被锁定在这个,我正在尝试读取此代码后的错误流,但从未到达该代码