0
我需要使用Java自動運行strace(當然,在linux系統上)。 所以,當我執行類似:運行strace並使用Java獲取輸出
strace -f echo hi
我得到的輸出:
hi
然而,當我在終端運行命令我得到的通常的輸出(和系統調用一切)。 我有這個解決方案,我使用「-o」標誌將strace輸出重定向到一個文件,然後讀取文件以獲得輸出,但這對我來說已經不再適用了。 所以我不明白,我做錯了什麼?
這裏是我執行命令代碼:
System.out.println(exec("strace -f -q echo hi"));
private String exec(String cmd) {
StringBuffer sb = new StringBuffer();
try {
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while((line = input.readLine()) != null) {
sb.append(line + "\n");
}
} catch (Exception ex) {
ex.printStackTrace();
}
return sb.toString();
}
很抱歉,如果我有一個錯字的地方,我用手複製此。 謝謝!
有什麼實際的問題,沒有輸出? – heikkim 2014-09-03 11:01:00
我得到'echo hi'的輸出。不是strace的輸出。就像我根本不使用strace。 – Shtut 2014-09-03 11:04:17