如何使用Java Process.waitFor()?
|
我试图从Java运行命令行命令,并且进行了快速的健全性检查,使我意识到我遇到麻烦的原因是我无法使下面的ѭ0调用起作用。该程序在30秒以内结束,并且在\“ foo:\”之后不显示任何内容。我希望它花费30秒钟以上,并在\“ foo:\”之后打印一个随机数。我究竟做错了什么?
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Sample {
public static void main(String[] args) throws Exception {
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(\"sleep 32; echo $RANDOM\");
pr.waitFor();
BufferedReader input = new BufferedReader(
new InputStreamReader(pr.getInputStream()));
String line=null;
StringBuilder s = new StringBuilder();
while((line=input.readLine()) != null) {
System.out.println(s);
s.append(line);
}
System.out.println(\"foo: \" + s.toString());
}
}
没有找到相关结果
已邀请:
3 个回复
蕾跨立锌煤
这将启动一个Shell进程,然后在Shell中运行您的命令。命令完成后,外壳程序才返回。 让我知道这是否适合您。
橙绥
的行和从InputStream读取的行的顺序。 关于SO的相关问题: Process.waitFor(),线程和InputStreams
购藏盗码韦