使用java在Linux中运行程序的列表

时间:2011-07-12 14:27:08

标签: java linux process operating-system

我正在尝试使用Java为Linux编写任务管理器。

我需要获取正在运行的程序列表。 以及其他信息:内存使用情况,CPU使用情况......

这可能来自Java吗?

感谢。

3 个答案:

答案 0 :(得分:6)

try {
    // Execute command
    String command = "ps aux";
    Process child = Runtime.getRuntime().exec(command);

    // Get the input stream and read from it
    InputStream in = child.getInputStream();
    int c;
    while ((c = in.read()) != -1) {
        process((char)c);
    }
    in.close();
} catch (IOException e) {
}

来源(已修改):http://www.exampledepot.com/egs/java.lang/ReadFromCommand.html

答案 1 :(得分:1)

在使用/ proc虚拟文件系统的系统中,您可以只横向目录并在/ proc下输出信息。

/ proc中的编号目录是正在运行的进程的进程ID,这些目录中的项目有助于描述该进程。

对于内存使用和cpu信息,有/ proc / meminfo和/ proc / cpuinfo(以及更多)。希望这能让你开始。

对于缺少/ proc虚拟文件系统的系统,您需要使用JNI绑定到将执行内核API调用的C代码,或尝试通过exec运行本地命令行程序,同时将输出管道和解析回到Java程序。

答案 2 :(得分:0)

尝试使用exec(String command)。然后,您可以从生成的Process获取输入流。