java实时获取linux的us和sy_用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());

}

}

发表于 2006-05-08 15:37 沉思的狗 阅读(346) 评论(0)  编辑  收藏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值