gpt4 book ai didi

java - 运行 strace 并使用 Java 获取输出

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:56:23 25 4
gpt4 key购买 nike

我需要用 Java 自动运行 strace(当然是在 linux 系统上)。所以当我执行类似的东西时:

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();
}

抱歉,如果我在某处有错别字,我是手抄的。谢谢!

最佳答案

我认为 strace 将其输出写入 STDERR。

所以解决方案是:

BufferedReader input = new BufferedReader(new InputStreamReader(p.getErrorStream()));

关于java - 运行 strace 并使用 Java 获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25642564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com