您的位置:首页 > 编程语言 > Java开发

java获取系统硬件信息的第三方jar包

2016-01-29 13:40 603 查看
官网:https://support.hyperic.com/display/SIGAR/Home%3bjsessionid=D9A582CF35294BA1F39FCBD2CC3CF0DB#Home-download

下载:http://sourceforge.net/projects/sigar/?source=typ_redirect

一、目前支持的操作系统清单:



二、文件内容:



三、window系统下需要的Jar包(红色框里面为需要导入的文件)



四、例子:

1、获取内存信息

package com.shadowOfCode.sigar.demo3.examples;

import org.hyperic.sigar.Mem;
import org.hyperic.sigar.Swap;
import org.hyperic.sigar.SigarException;

/**
* Display amount of free and used memory in the system.
*/
public class Free extends SigarCommandBase {

public Free(Shell shell) {
super(shell);
}

public Free() {
super();
}

public String getUsageShort() {
return "Display information about free and used memory";
}

private static Long format(long value) {
return new Long(value / 1024);
}

public void output(String[] args) throws SigarException {
Mem mem   = this.sigar.getMem();
Swap swap = this.sigar.getSwap();

Object[] header = new Object[] { "total", "used", "free" };

Object[] memRow = new Object[] {
format(mem.getTotal()),
format(mem.getUsed()),
format(mem.getFree())
};

Object[] actualRow = new Object[] {
format(mem.getActualUsed()),
format(mem.getActualFree())
};

Object[] swapRow = new Object[] {
format(swap.getTotal()),
format(swap.getUsed()),
format(swap.getFree())
};

printf("%18s %10s %10s", header);

printf("Mem:    %10ld %10ld %10ld", memRow);

//e.g. linux
if ((mem.getUsed() != mem.getActualUsed()) ||
(mem.getFree() != mem.getActualFree()))
{
printf("-/+ buffers/cache: " + "%10ld %10d", actualRow);
}

printf("Swap:   %10ld %10ld %10ld", swapRow);

printf("RAM:    %10ls", new Object[] { mem.getRam() + "MB" });
}

public static void main(String[] args) throws Exception {
new Free().processCommand(args);
}
}


2、获取CPU信息

package com.shadowOfCode.sigar.demo3.examples;

import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import org.hyperic.sigar.SigarLoader;

/**
* Display cpu information for each cpu found on the system.
*/
public class CpuInfo extends SigarCommandBase {

public boolean displayTimes = true;

public CpuInfo(Shell shell) {
super(shell);
}

public CpuInfo() {
super();
}

public String getUsageShort() {
return "Display cpu information";
}

private void output(CpuPerc cpu) {
println("User Time....." + CpuPerc.format(cpu.getUser()));
println("Sys Time......" + CpuPerc.format(cpu.getSys()));
println("Idle Time....." + CpuPerc.format(cpu.getIdle()));
println("Wait Time....." + CpuPerc.format(cpu.getWait()));
println("Nice Time....." + CpuPerc.format(cpu.getNice()));
println("Combined......" + CpuPerc.format(cpu.getCombined()));
println("Irq Time......" + CpuPerc.format(cpu.getIrq()));
if (SigarLoader.IS_LINUX) {
println("SoftIrq Time.." + CpuPerc.format(cpu.getSoftIrq()));
println("Stolen Time...." + CpuPerc.format(cpu.getStolen()));
}
println("");
}

public void output(String[] args) throws SigarException {
org.hyperic.sigar.CpuInfo[] infos =
this.sigar.getCpuInfoList();

CpuPerc[] cpus =
this.sigar.getCpuPercList();

org.hyperic.sigar.CpuInfo info = infos[0];
long cacheSize = info.getCacheSize();
println("Vendor........." + info.getVendor());
println("Model.........." + info.getModel());
println("Mhz............" + info.getMhz());
println("Total CPUs....." + info.getTotalCores());
if ((info.getTotalCores() != info.getTotalSockets()) ||
(info.getCoresPerSocket() > info.getTotalCores()))
{
println("Physical CPUs.." + info.getTotalSockets());
println("Cores per CPU.." + info.getCoresPerSocket());
}

if (cacheSize != Sigar.FIELD_NOTIMPL) {
println("Cache size...." + cacheSize);
}
println("");

if (!this.displayTimes) {
return;
}

for (int i=0; i<cpus.length; i++) {
println("CPU " + i + ".........");
output(cpus[i]);
}

println("Totals........");
output(this.sigar.getCpuPerc());
}

public static void main(String[] args) throws Exception {
new CpuInfo().processCommand(args);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: