java程序获取linux服务器进程信息

搜索了很多关于获取Linux的信息,但是没有发现获取linux服务器的进程信息详细说明。

在这里求解一下,能否在java代码中实现读取代码执行的本机linux服务器中的进程信息?
该问题又分为三个小问题:
1:能否指定只获取某个用户下的进程信息?
2:能否获取指定进程的信息?
3:能否获取到类似ps -ef和ps aux两个命令下的多维度信息?

我现在有的思路是使用Runtime.getRuntime().exec()调用shell来获取信息,但是我希望在不使用shell的情况下得到这些信息,就类似于直接通过调用java.net.InetAddress可以获取到IP信息一样,能否存在这样封装的包实现?
恳求指教!谢谢!

阅读 5.9k
2 个回答

既然exec,又想要ps -ef, 为何不exec("ps -ef")

public static void main(String[] args) throws Exception {

     try {
       String line;
       Process p = Runtime.getRuntime().exec( "ps -ef" );

       BufferedReader in = new BufferedReader(
               new InputStreamReader(p.getInputStream()) );
       while ((line = in.readLine()) != null) {
         System.out.println(line);
       }
       in.close();
     }
     catch (Exception e) {
       // ...
     }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题