我有以下的代码示例,它可以让您输入一个命令到bash shell,例如
这是为什么?还是我做错了什么?我的最终目标是创建一个定期执行命令到/bash的线程任务,因此
谢谢。
echo test
,然后将结果回显。但是,第一次读取之后,其他输出流无法正常工作?这是为什么?还是我做错了什么?我的最终目标是创建一个定期执行命令到/bash的线程任务,因此
OutputStream
和InputStream
必须一起工作,而不是停止工作。我也遇到了错误java.io.IOException:Broken pipe
,有什么想法吗?谢谢。
String line;
Scanner scan = new Scanner(System.in);
Process process = Runtime.getRuntime ().exec ("/bin/bash");
OutputStream stdin = process.getOutputStream ();
InputStream stderr = process.getErrorStream ();
InputStream stdout = process.getInputStream ();
BufferedReader reader = new BufferedReader (new InputStreamReader(stdout));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin));
String input = scan.nextLine();
input += "\n";
writer.write(input);
writer.flush();
input = scan.nextLine();
input += "\n";
writer.write(input);
writer.flush();
while ((line = reader.readLine ()) != null) {
System.out.println ("Stdout: " + line);
}
input = scan.nextLine();
input += "\n";
writer.write(input);
writer.close();
while ((line = reader.readLine ()) != null) {
System.out.println ("Stdout: " + line);
}