我正在尝试/usr/bin/perl -e 'for(my $i=0;$i<1000;$i++){print 1x1000;print STDERR 2x1000;}'
使用我的程序运行(在终端中工作)。
ProcessBuilder pb = new ProcessBuilder(go); //go is the command
process = pb.start();
BufferedReader incommandbuf = new BufferedReader(new InputStreamReader(process.getInputStream()),1024*1000);
BufferedReader errcommandbuf = new BufferedReader(new InputStreamReader(process.getErrorStream()),1024*1000);
stdString = "";
while ((line = incommandbuf.readLine()) != null)
{
stdString += line + "\n";
}
String errorstrtemp = "";
while ((line = errcommandbuf.readLine()) != null)
{
errorstrtemp += line + "\n";
}
如果我尝试运行它,它会挂起while ((line = incommandbuf.readLine()) != null)
。如果我将命令更改为/usr/bin/perl -e 'for(my $i=0;$i<64;$i++){print 1x1000;print STDERR 2x1000;}'
. 如果它上升到 65 或更高,它就不起作用。起初我以为我只需要更改 BufferedReaders 的大小,但它没有帮助。关于是什么原因的任何线索?如果需要,我将提供任何其他信息。谢谢。