【问题标题】:List of running programs in Linux using java使用java在Linux中运行的程序列表
【发布时间】:2011-10-03 16:38:16
【问题描述】:

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

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

这可能来自 Java 吗?

谢谢。

【问题讨论】:

    标签: java linux process operating-system


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      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

      【讨论】:

      • 不错!比我的回答更具描述性!
      • 谢谢,但我或多或少地从提到的页面复制粘贴了示例;)
      【解决方案3】:

      有可能,在使用 /proc 虚拟文件系统的系统中,您可以只遍历目录并找出 /proc 下的信息。

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-21
        • 2015-11-18
        相关资源
        最近更新 更多