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