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

  导入java.io.BufferedReader;
  导入java.io.File;
  导入java.io.FileInputStream;
  导入java.io.IOException;
  导入java.io.InputStreamReader;
  导入java.util.StringTokenizer;
  /**
  *获取linux系统下的cpu、内存信息
  *
  *<p> author javer QQ:84831612</p>
  * date 2005
  */
  public Final class LinuxSystemTool
  {
  /**
  *通过使用信息获取内存
  *
  * return int[]结果
  *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[]结果=新int[4];
  字符串str=null;
  StringTokenizer令牌=null;
  while((str=br.readLine())!=null)
  {
  token=new StringTokenizer(str);
  if(!token.hasMoreTokens())
  继续;
  str=token.nextToken();
  if(!token.hasMoreTokens())
  继续;
  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 float效率
  * 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());
  intidle1=Integer.parseInt(token.nextToken());
  线程睡眠(1000);
  br=new BufferedReader(
  new InputStreamReader(new FileInputStream(file)));
  令牌=new StringTokenizer(br.readLine());
  token.nextToken();
  int user2=Integer.parseInt(token.nextToken());
  int Nice2=Integer.parseInt(token.nextToken());
  int sys2=Integer.parseInt(token.nextToken());
  intidle2=Integer.parseInt(token.nextToken());
  返回(浮点)((用户2+系统2+Nice2)-(用户1+系统1+Nice1))/(浮点)((用户2+Nice2+系统2+空闲2)-(用户1+Nice1+系统1+空闲1));
  }}
  /
  **
  *测试类
  *
  *<p> author javer QQ:84831612</p>
  * 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("交换总额:"+memInfo[2]);
  System.out.println("交换空间:"+memInfo[3]);
  System.out.println("CPU利用率:"+LinuxSystemTool.getCpuInfo());
  }
  }