如何解析linux游标程序的输出,例如java中的top? 我希望有人举一个例子或链接一个。现在我得到了像Process对象一样的顶级运行。而btw top只是这样一个程序的一个例子。
String[] args={"top"};
Process process = new ProcessBuilder(args).start();
答案 0 :(得分:1)
你做不到。使用curses
编写的程序不会像典型的命令行程序那样输出字符流,甚至不会使用退格技巧输出。相反,它使用特定于操作系统的调用,如ioctl
和特定于实现的转义序列,如TermInfo中所述。通常,Unix系统上的这些程序是执行所有必要工作的库的简单前端,而您最好的选择通常是使用这些库(如果没有可用的话,编写JNI包装器)。
在top
的情况下,您可以看到程序如何从源代码中读取操作系统中的流程信息,作为the procps package的一部分提供。
答案 1 :(得分:0)
第一步是读取处理输出的所有数据,可以使用Process.getInputStream()
方法
Process p = new ProcessBuilder("top").start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while((line = br.readLine()) != null) {
System.out.println(line);
}