私は以下のコードを持っています。Ruby スクリプトを実行して標準出力を取得しようとしていますが、この場合、標準エラーは必要ありません。何らかの理由で、実稼働ホストでまったく出力を取得できず、空の文字列しか取得できませんでした。私のデスクトップでも同じコードが正常に動作します。Ruby スクリプトを自分で実行すると、そこから出力が得られます。私の ruby スクリプトには、今のところ puts ステートメントしかありません。誰でも理由を知っていますか?Rubyスクリプトが終了するのを待つために、ある種のブロックが必要ですか?
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("ruby", "tests.rb");
Process process = processBuilder.start();
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
StringBuilder output = new StringBuilder();
String line;
while ((line = bufferReader.readLine()) != null) {
System.out.println("Line is: " + line);
output.append(line + "\n");
}
bufferReader.close();
return output.toString();
zshを実行しているredhatマシンがあります。