私は Apache Commons Exec を使用しており、アプリケーションの全期間にわたって機能するサブプロセスを開始しようとしています。プロセスを開始し、2 つの入力コマンドを受け入れ、バックグラウンドで待機する必要があります。現在は、1 つのコマンド (少なくとも stdout が表示するもの) のみを受け入れて終了します。あなたは私を助けることができますか?
CommandLine cmdLine = new CommandLine("app.exe");
cmdLine.addArgument("argument");
DefaultExecutor executor = new DefaultExecutor();
OutputStream os = new ByteArrayOutputStream();
InputStream is = new ByteArrayInputStream(("command1;\ncommand2;\n").getBytes());
executor.setStreamHandler(new PumpStreamHandler(os,null,is));
DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();
executor.execute(cmdLine,resultHandler);
System.out.println(os.toString());
resultHandler.waitFor();