java 获取本地信息大全
上一篇 / 下一篇 2012-09-02 15:19:06 / 个人分类:java开发
通过使用第三方开源jar包sigar.jar我们可以获得本地的信息
1.下载sigar.jar
2.按照主页上的说明解压包后将相应的文件copy到java路径。比如windows32位操作系统需要将lib中sigar-x86-winnt.dll文件拷贝到java SDK目录的bin内
参考官方主页上的配置项。
File | Language | Description | Required |
---|---|---|---|
sigar.jar | Java | Java API | Yes (for Java only) |
log4j.jar | Java | Java logging API | No |
libsigar-x86-linux.so | C | Linux AMD/Intel 32-bit | * |
libsigar-amd64-linux.so | C | Linux AMD/Intel 64-bit | * |
libsigar-ppc-linux.so | C | Linux PowerPC 32-bit | * |
libsigar-ppc64-linux.so | C | Linux PowerPC 64-bit | * |
libsigar-ia64-linux.so | C | Linux Itanium 64-bit | * |
libsigar-s390x-linux.so | C | Linux zSeries 64-bit | * |
sigar-x86-winnt.dll | C | Windows AMD/Intel 32-bit | * |
sigar-amd64-winnt.dll | C | Windows AMD/Intel 64-bit | * |
libsigar-ppc-aix-5.so | C | AIX PowerPC 32-bit | * |
libsigar-ppc64-aix-5.so | C | AIX PowerPC 64-bit | * |
libsigar-pa-hpux-11.sl | C | HP-UX PA-RISC 32-bit | * |
libsigar-ia64-hpux-11.sl | C | HP-UX Itanium 64-bt | * |
libsigar-sparc-solaris.so | C | Solaris Sparc 32-bit | * |
libsigar-sparc64-solaris.so | C | Solaris Sparc 64-bit | * |
libsigar-x86-solaris.so | C | Solaris AMD/Intel 32-bit | * |
libsigar-amd64-solaris.so | C | Solaris AMD/Intel 64-bit | * |
libsigar-universal-macosx.dylib | C | Mac OS X PowerPC/Intel 32-bit | * |
libsigar-universal64-macosx.dylib | C | Mac OS X PowerPC/Intel 64-bit | * |
libsigar-x86-freebsd-5.so | C | FreeBSD 5.x AMD/Intel 32-bit | * |
libsigar-x86-freebsd-6.so | C | FreeBSD 6.x AMD/Intel 64-bit | * |
libsigar-amd64-freebsd-6.so | C | FreeBSD 6.x AMD/Intel 64-bit | * |
3.
代码实现
- package com.xingcloud.test;
- import java.net.InetAddress;
- import java.net.UnknownHostException;
- import java.util.Map;
- import java.util.Properties;
- import org.hyperic.sigar.CpuInfo;
- import org.hyperic.sigar.CpuPerc;
- import org.hyperic.sigar.FileSystem;
- import org.hyperic.sigar.FileSystemUsage;
- import org.hyperic.sigar.Mem;
- import org.hyperic.sigar.NetFlags;
- import org.hyperic.sigar.NetInterfaceConfig;
- import org.hyperic.sigar.NetInterfaceStat;
- import org.hyperic.sigar.OperatingSystem;
- import org.hyperic.sigar.Sigar;
- import org.hyperic.sigar.SigarException;
- import org.hyperic.sigar.Swap;
- import org.hyperic.sigar.Who;
- public class RuntimeTest {
- public static void main(String[] args) {
- try {
- // System信息,从jvm获取
- property();
- // cpu信息
- cpu();
- // 内存信息
- memory();
- // 操作系统信息
- os();
- // 用户信息
- who();
- // 文件系统信息
- file();
- // 网络信息
- net();
- // 以太网信息
- ethernet();
- } catch (Exception e1) {
- e1.printStackTrace();
- }
- }
- private static void property() throws UnknownHostException {
- Runtime r = Runtime.getRuntime();
- Properties props = System.getProperties();
- InetAddress addr;
- addr = InetAddress.getLocalHost();
- String ip = addr.getHostAddress();
- Map<String, String> map = System.getenv();
- String userName = map.get("USERNAME");// 获取用户名
- String computerName = map.get("COMPUTERNAME");// 获取计算机名
- String userDomain = map.get("USERDOMAIN");// 获取计算机域名
- System.out.println("用户名: " + userName);
- System.out.println("计算机名: " + computerName);
- System.out.println("计算机域名: " + userDomain);
- System.out.println("本地ip地址: " + ip);
- System.out.println("本地主机名: " + addr.getHostName());
- System.out.println("JVM可以使用的总内存: " + r.totalMemory());
- System.out.println("JVM可以使用的剩余内存: " + r.freeMemory());
- System.out.println("JVM可以使用的处理器个数: " + r.availableProcessors());
- System.out.println("Java的运行环境版本: " + props.getProperty("java.version"));
- System.out.println("Java的运行环境供应商: " + props.getProperty("java.vendor"));
- System.out.println("Java供应商的URL: " + props.getProperty("java.vendor.url"));
- System.out.println("Java的安装路径: " + props.getProperty("java.home"));
- System.out.println("Java的虚拟机规范版本: " + props.getProperty("java.vm.specification.version"));
- System.out.println("Java的虚拟机规范供应商: " + props.getProperty("java.vm.specification.vendor"));
- System.out.println("Java的虚拟机规范名称: " + props.getProperty("java.vm.specification.name"));
- System.out.println("Java的虚拟机实现版本: " + props.getProperty("java.vm.version"));
- System.out.println("Java的虚拟机实现供应商: " + props.getProperty("java.vm.vendor"));
- System.out.println("Java的虚拟机实现名称: " + props.getProperty("java.vm.name"));
- System.out.println("Java运行时环境规范版本: " + props.getProperty("java.specification.version"));
- System.out.println("Java运行时环境规范供应商: " + props.getProperty("java.specification.vender"));
- System.out.println("Java运行时环境规范名称: " + props.getProperty("java.specification.name"));
- System.out.println("Java的类格式版本号: " + props.getProperty("java.class.version"));
- System.out.println("Java的类路径: " + props.getProperty("java.class.path"));
- System.out.println("加载库时搜索的路径列表: " + props.getProperty("java.library.path"));
- System.out.println("默认的临时文件路径: " + props.getProperty("java.io.tmpdir"));
- System.out.println("一个或多个扩展目录的路径: " + props.getProperty("java.ext.dirs"));
- System.out.println("操作系统的名称: " + props.getProperty("os.name"));
- System.out.println("操作系统的构架: " + props.getProperty("os.arch"));
- System.out.println("操作系统的版本: " + props.getProperty("os.version"));
- System.out.println("文件分隔符: " + props.getProperty("file.separator"));
- System.out.println("路径分隔符: " + props.getProperty("path.separator"));
- System.out.println("行分隔符: " + props.getProperty("line.separator"));
- System.out.println("用户的账户名称: " + props.getProperty("user.name"));
- System.out.println("用户的主目录: " + props.getProperty("user.home"));
- System.out.println("用户的当前工作目录: " + props.getProperty("user.dir"));
- }
- private static void memory() throws SigarException {
- Sigar sigar = new Sigar();
- Mem mem = sigar.getMem();
- // 内存总量
- System.out.println("内存总量: " + mem.getTotal() / 1024L + "K av");
- // 当前内存使用量
- System.out.println("当前内存使用量: " + mem.getUsed() / 1024L + "K used");
- // 当前内存剩余量
- System.out.println("当前内存剩余量: " + mem.getFree() / 1024L + "K free");
- Swap swap = sigar.getSwap();
- // 交换区总量
- System.out.println("交换区总量: " + swap.getTotal() / 1024L + "K av");
- // 当前交换区使用量
- System.out.println("当前交换区使用量: " + swap.getUsed() / 1024L + "K used");
- // 当前交换区剩余量
- System.out.println("当前交换区剩余量: " + swap.getFree() / 1024L + "K free");
- }
- private static void cpu() throws SigarException {
- Sigar sigar = new Sigar();
- CpuInfo infos[] = sigar.getCpuInfoList();
- CpuPerc cpuList[] = null;
- cpuList = sigar.getCpuPercList();
- for (int i = 0; i < infos.length; i++) {// 不管是单块CPU还是多CPU都适用
- CpuInfo info = infos[i];
- System.out.println("第" + (i + 1) + "块CPU信息");
- System.out.println("CPU的总量MHz: " + info.getMhz());// CPU的总量MHz
- System.out.println("CPU生产商: " + info.getVendor());// 获得CPU的卖主,如:Intel
- System.out.println("CPU类别: " + info.getModel());// 获得CPU的类别,如:Celeron
- System.out.println("CPU缓存数量: " + info.getCacheSize());// 缓冲存储器数量
- printCpuPerc(cpuList[i]);
- }
- }
- private static void printCpuPerc(CpuPerc cpu) {
- System.out.println("CPU用户使用率: " + CpuPerc.format(cpu.getUser()));// 用户使用率
- System.out.println("CPU系统使用率: " + CpuPerc.format(cpu.getSys()));// 系统使用率
- System.out.println("CPU当前等待率: " + CpuPerc.format(cpu.getWait()));// 当前等待率
- System.out.println("CPU当前错误率: " + CpuPerc.format(cpu.getNice()));//
- System.out.println("CPU当前空闲率: " + CpuPerc.format(cpu.getIdle()));// 当前空闲率
- System.out.println("CPU总的使用率: " + CpuPerc.format(cpu.getCombined()));// 总的使用率
- }
- private static void os() {
- OperatingSystem OS = OperatingSystem.getInstance();
- // 操作系统内核类型如: 386、486、586等x86
- System.out.println("操作系统: " + OS.getArch());
- System.out.println("操作系统CpuEndian(): " + OS.getCpuEndian());//
- &nbs
TAG:
我的栏目
标题搜索
日历
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
1 | 2 | 3 | 4 | 5 | 6 | ||||
7 | 8 | 9 | 10 | 11 | 12 | 13 | |||
14 | 15 | 16 | 17 | 18 | 19 | 20 | |||
21 | 22 | 23 | 24 | 25 | 26 | 27 | |||
28 | 29 | 30 |
我的存档
数据统计
- 访问量: 175617
- 日志数: 122
- 建立时间: 2011-03-22
- 更新时间: 2013-03-23