java linux获取实时cpu_用java取得linux系统cpu、内存的实时信息

import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;/*** 取得linux系统下的cpu、内存信息* *

@author javer QQ:84831612

* @date 2005*/public final class LinuxSystemTool{   /**   * get memory by used info   *    * @return int[] result   * result.length==4;int[0]=MemTotal;int[1]=MemFree;int[2]=SwapTotal;int[3]=SwapFree;   * @throws IOException   * @throws InterruptedException   */   public static int[] getMemInfo() throws IOException, InterruptedException   {      File file = new File("/proc/meminfo");      BufferedReader br = new BufferedReader(new InputStreamReader(      new FileInputStream(file)));      int[] result = new int[4];      String str = null;      StringTokenizer token = null;      while((str = br.readLine()) != null)      {         token = new StringTokenizer(str);         if(!token.hasMoreTokens())            continue;            str = token.nextToken();         if(!token.hasMoreTokens())            continue;            if(str.equalsIgnoreCase("MemTotal:"))            result[0] = Integer.parseInt(token.nextToken());         else if(str.equalsIgnoreCase("MemFree:"))            result[1] = Integer.parseInt(token.nextToken());         else if(str.equalsIgnoreCase("SwapTotal:"))            result[2] = Integer.parseInt(token.nextToken());         else if(str.equalsIgnoreCase("SwapFree:"))            result[3] = Integer.parseInt(token.nextToken());      }         return result;   }   /**   * get memory by used info   *    * @return float efficiency   * @throws IOException   * @throws InterruptedException   */   public static float getCpuInfo() throws IOException, InterruptedException   {      File file = new File("/proc/stat");      BufferedReader br = new BufferedReader(new InputStreamReader(      new FileInputStream(file)));      StringTokenizer token = new StringTokenizer(br.readLine());      token.nextToken();      int user1 = Integer.parseInt(token.nextToken());      int nice1 = Integer.parseInt(token.nextToken());      int sys1 = Integer.parseInt(token.nextToken());      int idle1 = Integer.parseInt(token.nextToken());         Thread.sleep(1000);      br = new BufferedReader(      new InputStreamReader(new FileInputStream(file)));      token = new StringTokenizer(br.readLine());      token.nextToken();      int user2 = Integer.parseInt(token.nextToken());      int nice2 = Integer.parseInt(token.nextToken());      int sys2 = Integer.parseInt(token.nextToken());      int idle2 = Integer.parseInt(token.nextToken());      return (float)((user2 + sys2 + nice2) - (user1 + sys1 + nice1)) / (float)((user2 + nice2 + sys2 + idle2) - (user1 + nice1 + sys1 + idle1));   }}/*** 测试类* *

@author javer QQ:84831612

* @date 2005*/public class JaverTest{    public static void main(String[] args) throws Exception    {        int[] memInfo = LinuxSystemTool.getMemInfo();        System.out.println("MemTotal:" + memInfo[0]);        System.out.println("MemFree:" + memInfo[1]);        System.out.println("SwapTotal:" + memInfo[2]);        System.out.println("SwapFree:" + memInfo[3]);        System.out.println("CPU利用率:" + LinuxSystemTool.getCpuInfo());    }}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值