Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java在Linux中运行的程序列表_Java_Linux_Process_Operating System - Fatal编程技术网

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

使用java在Linux中运行的程序列表,java,linux,process,operating-system,Java,Linux,Process,Operating System,我正在尝试使用Java为Linux编写一个任务管理器 我需要一份正在运行的程序列表。 和其他信息,如:内存使用率,cpu使用率 这可以从Java实现吗 谢谢。在使用/proc虚拟文件系统的系统中,您可以只横穿目录并在/proc下查找信息 /proc中编号的目录是正在运行的进程的进程ID,这些目录中的项目有助于描述进程 关于内存使用和cpu信息,有/proc/meminfo和/proc/cpuinfo(还有更多)。希望这能让你开始 对于缺少/proc虚拟文件系统的系统,您需要使用JNI绑定到执行内

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

我需要一份正在运行的程序列表。 和其他信息,如:内存使用率,cpu使用率

这可以从Java实现吗


谢谢。

在使用/proc虚拟文件系统的系统中,您可以只横穿目录并在/proc下查找信息

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

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

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

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) {
}

来源(已修改):

尝试使用。然后可以从结果中获取输入流。

Nice!比我的回答更具描述性!谢谢,但我或多或少地复制了上面提到的页面上的示例;)