Process process = Runtime.getRuntime().exec(propertiesMap.get("PmdBatFile"));
BufferedReader reader =
new BufferedReader(new InputStreamReader(process.getInputStream()));
String s ;
while ((s = reader.readLine()) != null) {
System.out.println(s);
}
process.waitFor();
在这里,这个过程停止了,jvm在输出中写入了大约13,000行,文件大小显示为3MB,而在超过500MB的文件中,它应该在几乎任何地方写入超过1行的缺少行的文件,之后jvm就会进入死锁。
通过bufferReader可以写入的内容有限制吗?
发布于 2017-09-10 09:53:17
这可以很好地工作。
ProcessBuilder processBuilder = new ProcessBuilder(propertiesMap.get("PmdBatFile"));
File log = new File(propertiesMap.get("JenkinsLogs")+"\\"+"\JenkinsLog"+"_"+dateFormat.format(date)+".txt");
processBuilder.redirectErrorStream(true);
processBuilder.redirectOutput(ProcessBuilder.Redirect.appendTo(log));
Process process = processBuilder.start();
process.waitFor();
System.out.println("Done");
https://stackoverflow.com/questions/46138191
复制相似问题