sigar获取进程信息

最近工作中用到sigar,要用sigar获得相关的CPU信息,内存信息,进程信息等。但是大多数还是能在网上找到的。就只有获得进程的信息怎么找也找不以。今天贴出来和大家分享一下,还请各位指教。

 

// 获取进程的相关信息以及对进程信息进行包装
    public List<ProcessInfo> getProcessInfo() {
        Ps ps = new Ps();
        List<ProcessInfo> processInfos = new ArrayList<ProcessInfo>();
        try {
            long[] pids = sigar.getProcList();
            for (long pid : pids) {
                List<String> list = ps.getInfo(sigar, pid);
                ProcessInfo info = new ProcessInfo();
                for (int i = 0; i <= list.size(); i++) {
                    switch (i) {
                    case 0:    info.setPid(list.get(0));    break;
                    case 1: info.setUser(list.get(1));    break;
                    case 2: info.setStartTime(list.get(2));    break;
                    case 3:    info.setMemSize(list.get(3));    break;
                    case 4:    info.setMemUse(list.get(4));    break;
                    case 5:    info.setMemhare(list.get(5));    break;
                    case 6:    info.setState(list.get(6));    break;
                    case 7:    info.setCpuTime(list.get(7));    break;
                    case 8:    info.setName(list.get(8));    break;
                    }
                }
                processInfos.add(info);
            }
        } catch (SigarException e) {
            e.printStackTrace();
        }
        return processInfos;
    }

 

 

//进程信息的包装类

package com.yangdun.client.vo;

public class ProcessInfo {
   
    private String pid;
   
    private String user;
   
    private String startTime;
   
    private String memSize;
   
    private String memUse;
   
    private String memhare;
   
    private String state;
   
    private String cpuTime;
   
    private String name;

    public String getPid() {
        return pid;
    }

    public void setPid(String pid) {
        this.pid = pid;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getMemSize() {
        return memSize;
    }

    public void setMemSize(String memSize) {
        this.memSize = memSize;
    }

    public String getMemUse() {
        return memUse;
    }

    public void setMemUse(String memUse) {
        this.memUse = memUse;
    }

    public String getMemhare() {
        return memhare;
    }

    public void setMemhare(String memhare) {
        this.memhare = memhare;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getCpuTime() {
        return cpuTime;
    }

    public void setCpuTime(String cpuTime) {
        this.cpuTime = cpuTime;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
   
}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值