何らかの理由で、このコードは出力ストリームを閉じたときにのみ機能します。閉じずに動作させるにはどうすればよいですか?
プロセスを再起動せずにプロセスにデータを送信し続けることができるように、開いたままにしたいのです。
ProcessBuilder pbuilder = new ProcessBuilder(procCmds);
pbuilder.directory(new File(workingDir));
Process p = pbuilder.start();
BufferedWriter outputStream = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
String str = "hello world heard from java\n";
outputStream.write(str, 0, str.length());
outputStream.flush();
System.out.println("wrote " + str);
BufferedReader errorStream = new BufferedReader(new InputStreamReader(p.getErrorStream()));
BufferedReader inputStream = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while((line=errorStream.readLine())!=null)
System.out.println(line);
while((line=inputStream.readLine())!=null)
System.out.println(line);
//p.waitFor();
outputStream.close();
errorStream.close();
inputStream.close();