1
我正在嘗試編寫Java程序來運行終端命令。谷歌搜索和SO讓我到這裏:通過Java運行的一些終端命令在Linux中不顯示輸出
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Detector {
public static void main(String[] args) {
String[] cmd = {"ls", "-la"};
try {
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader reader = new BufferedReader(
new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine()) !=null){
System.out.println(line);
}
p.waitFor();
} catch (IOException | InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
到目前爲止,這麼好。問題是,如果我嘗試通過
String[] cmd = {"python", "-V"};
程序將運行到運行像「蟒蛇-V」命令,但沒有輸出實際上被打印出來。有任何想法嗎?
'python -V'默認寫入STDERR,而不是STDOUT。 將其更改爲'python -V 2>&1'應該可行,但我確定有一些方法可以在沒有'2>&1'部分的Java中執行此操作。 – Munir