java 获取本地信息大全

上一篇 / 下一篇  2012-09-02 15:19:06 / 个人分类:java开发

通过使用第三方开源jar包sigar.jar我们可以获得本地的信息

1.下载sigar.jar

sigar-1.6.4.zip

2.按照主页上的说明解压包后将相应的文件copy到java路径。比如windows32位操作系统需要将lib中sigar-x86-winnt.dll文件拷贝到java SDK目录的bin内

参考官方主页上的配置项。

FileLanguageDescriptionRequired
sigar.jarJavaJava APIYes (for Java only)
log4j.jarJavaJava logging APINo
libsigar-x86-linux.soCLinux AMD/Intel 32-bit*
libsigar-amd64-linux.soCLinux AMD/Intel 64-bit*
libsigar-ppc-linux.soCLinux PowerPC 32-bit*
libsigar-ppc64-linux.soCLinux PowerPC 64-bit*
libsigar-ia64-linux.soCLinux Itanium 64-bit*
libsigar-s390x-linux.soCLinux zSeries 64-bit*
sigar-x86-winnt.dllCWindows AMD/Intel 32-bit*
sigar-amd64-winnt.dllCWindows AMD/Intel 64-bit*
libsigar-ppc-aix-5.soCAIX PowerPC 32-bit*
libsigar-ppc64-aix-5.soCAIX PowerPC 64-bit*
libsigar-pa-hpux-11.slCHP-UX PA-RISC 32-bit*
libsigar-ia64-hpux-11.slCHP-UX Itanium 64-bt*
libsigar-sparc-solaris.soCSolaris Sparc 32-bit*
libsigar-sparc64-solaris.soCSolaris Sparc 64-bit*
libsigar-x86-solaris.soCSolaris AMD/Intel 32-bit*
libsigar-amd64-solaris.soCSolaris AMD/Intel 64-bit*
libsigar-universal-macosx.dylibCMac OS X PowerPC/Intel 32-bit*
libsigar-universal64-macosx.dylibCMac OS X PowerPC/Intel 64-bit*
libsigar-x86-freebsd-5.soCFreeBSD 5.x AMD/Intel 32-bit*
libsigar-x86-freebsd-6.soCFreeBSD 6.x AMD/Intel 64-bit*
libsigar-amd64-freebsd-6.soCFreeBSD 6.x AMD/Intel 64-bit*

3.

代码实现

  1. package com.xingcloud.test;  
  2.   
  3. import java.net.InetAddress;  
  4. import java.net.UnknownHostException;  
  5. import java.util.Map;  
  6. import java.util.Properties;  
  7. import org.hyperic.sigar.CpuInfo;  
  8. import org.hyperic.sigar.CpuPerc;  
  9. import org.hyperic.sigar.FileSystem;  
  10. import org.hyperic.sigar.FileSystemUsage;  
  11. import org.hyperic.sigar.Mem;  
  12. import org.hyperic.sigar.NetFlags;  
  13. import org.hyperic.sigar.NetInterfaceConfig;  
  14. import org.hyperic.sigar.NetInterfaceStat;  
  15. import org.hyperic.sigar.OperatingSystem;  
  16. import org.hyperic.sigar.Sigar;  
  17. import org.hyperic.sigar.SigarException;  
  18. import org.hyperic.sigar.Swap;  
  19. import org.hyperic.sigar.Who;  
  20.   
  21. public class RuntimeTest {  
  22.     public static void main(String[] args) {  
  23.         try {  
  24.             // System信息,从jvm获取  
  25.             property();  
  26.             // cpu信息  
  27.             cpu();  
  28.             // 内存信息  
  29.             memory();  
  30.             // 操作系统信息  
  31.             os();  
  32.             // 用户信息  
  33.             who();  
  34.             // 文件系统信息  
  35.             file();  
  36.             // 网络信息  
  37.             net();  
  38.             // 以太网信息  
  39.             ethernet();  
  40.         } catch (Exception e1) {  
  41.             e1.printStackTrace();  
  42.         }  
  43.     }  
  44.   
  45.     private static void property() throws UnknownHostException {  
  46.         Runtime r = Runtime.getRuntime();  
  47.         Properties props = System.getProperties();  
  48.         InetAddress addr;  
  49.         addr = InetAddress.getLocalHost();  
  50.         String ip = addr.getHostAddress();  
  51.         Map<String, String> map = System.getenv();  
  52.         String userName = map.get("USERNAME");// 获取用户名  
  53.         String computerName = map.get("COMPUTERNAME");// 获取计算机名  
  54.         String userDomain = map.get("USERDOMAIN");// 获取计算机域名  
  55.         System.out.println("用户名:    " + userName);  
  56.         System.out.println("计算机名:   " + computerName);  
  57.         System.out.println("计算机域名:  " + userDomain);  
  58.         System.out.println("本地ip地址: " + ip);  
  59.         System.out.println("本地主机名:  " + addr.getHostName());  
  60.         System.out.println("JVM可以使用的总内存:    " + r.totalMemory());  
  61.         System.out.println("JVM可以使用的剩余内存:   " + r.freeMemory());  
  62.         System.out.println("JVM可以使用的处理器个数:  " + r.availableProcessors());  
  63.         System.out.println("Java的运行环境版本:    " + props.getProperty("java.version"));  
  64.         System.out.println("Java的运行环境供应商:   " + props.getProperty("java.vendor"));  
  65.         System.out.println("Java供应商的URL:    " + props.getProperty("java.vendor.url"));  
  66.         System.out.println("Java的安装路径:  " + props.getProperty("java.home"));  
  67.         System.out.println("Java的虚拟机规范版本:   " + props.getProperty("java.vm.specification.version"));  
  68.         System.out.println("Java的虚拟机规范供应商:  " + props.getProperty("java.vm.specification.vendor"));  
  69.         System.out.println("Java的虚拟机规范名称:   " + props.getProperty("java.vm.specification.name"));  
  70.         System.out.println("Java的虚拟机实现版本:   " + props.getProperty("java.vm.version"));  
  71.         System.out.println("Java的虚拟机实现供应商:  " + props.getProperty("java.vm.vendor"));  
  72.         System.out.println("Java的虚拟机实现名称:   " + props.getProperty("java.vm.name"));  
  73.         System.out.println("Java运行时环境规范版本:  " + props.getProperty("java.specification.version"));  
  74.         System.out.println("Java运行时环境规范供应商: " + props.getProperty("java.specification.vender"));  
  75.         System.out.println("Java运行时环境规范名称:  " + props.getProperty("java.specification.name"));  
  76.         System.out.println("Java的类格式版本号:    " + props.getProperty("java.class.version"));  
  77.         System.out.println("Java的类路径:   " + props.getProperty("java.class.path"));  
  78.         System.out.println("加载库时搜索的路径列表:    " + props.getProperty("java.library.path"));  
  79.         System.out.println("默认的临时文件路径:  " + props.getProperty("java.io.tmpdir"));  
  80.         System.out.println("一个或多个扩展目录的路径:   " + props.getProperty("java.ext.dirs"));  
  81.         System.out.println("操作系统的名称:    " + props.getProperty("os.name"));  
  82.         System.out.println("操作系统的构架:    " + props.getProperty("os.arch"));  
  83.         System.out.println("操作系统的版本:    " + props.getProperty("os.version"));  
  84.         System.out.println("文件分隔符:  " + props.getProperty("file.separator"));  
  85.         System.out.println("路径分隔符:  " + props.getProperty("path.separator"));  
  86.         System.out.println("行分隔符:   " + props.getProperty("line.separator"));  
  87.         System.out.println("用户的账户名称:    " + props.getProperty("user.name"));  
  88.         System.out.println("用户的主目录: " + props.getProperty("user.home"));  
  89.         System.out.println("用户的当前工作目录:  " + props.getProperty("user.dir"));  
  90.     }  
  91.   
  92.     private static void memory() throws SigarException {  
  93.         Sigar sigar = new Sigar();  
  94.         Mem mem = sigar.getMem();  
  95.         // 内存总量  
  96.         System.out.println("内存总量:   " + mem.getTotal() / 1024L + "K av");  
  97.         // 当前内存使用量  
  98.         System.out.println("当前内存使用量:    " + mem.getUsed() / 1024L + "K used");  
  99.         // 当前内存剩余量  
  100.         System.out.println("当前内存剩余量:    " + mem.getFree() / 1024L + "K free");  
  101.         Swap swap = sigar.getSwap();  
  102.         // 交换区总量  
  103.         System.out.println("交换区总量:  " + swap.getTotal() / 1024L + "K av");  
  104.         // 当前交换区使用量  
  105.         System.out.println("当前交换区使用量:   " + swap.getUsed() / 1024L + "K used");  
  106.         // 当前交换区剩余量  
  107.         System.out.println("当前交换区剩余量:   " + swap.getFree() / 1024L + "K free");  
  108.     }  
  109.   
  110.     private static void cpu() throws SigarException {  
  111.         Sigar sigar = new Sigar();  
  112.         CpuInfo infos[] = sigar.getCpuInfoList();  
  113.         CpuPerc cpuList[] = null;  
  114.         cpuList = sigar.getCpuPercList();  
  115.         for (int i = 0; i < infos.length; i++) {// 不管是单块CPU还是多CPU都适用  
  116.             CpuInfo info = infos[i];  
  117.             System.out.println("第" + (i + 1) + "块CPU信息");  
  118.             System.out.println("CPU的总量MHz:  " + info.getMhz());// CPU的总量MHz  
  119.             System.out.println("CPU生产商: " + info.getVendor());// 获得CPU的卖主,如:Intel  
  120.             System.out.println("CPU类别:  " + info.getModel());// 获得CPU的类别,如:Celeron  
  121.             System.out.println("CPU缓存数量:    " + info.getCacheSize());// 缓冲存储器数量  
  122.             printCpuPerc(cpuList[i]);  
  123.         }  
  124.     }  
  125.   
  126.     private static void printCpuPerc(CpuPerc cpu) {  
  127.         System.out.println("CPU用户使用率:   " + CpuPerc.format(cpu.getUser()));// 用户使用率  
  128.         System.out.println("CPU系统使用率:   " + CpuPerc.format(cpu.getSys()));// 系统使用率  
  129.         System.out.println("CPU当前等待率:   " + CpuPerc.format(cpu.getWait()));// 当前等待率  
  130.         System.out.println("CPU当前错误率:   " + CpuPerc.format(cpu.getNice()));//  
  131.         System.out.println("CPU当前空闲率:   " + CpuPerc.format(cpu.getIdle()));// 当前空闲率  
  132.         System.out.println("CPU总的使用率:   " + CpuPerc.format(cpu.getCombined()));// 总的使用率  
  133.     }  
  134.   
  135.     private static void os() {  
  136.         OperatingSystem OS = OperatingSystem.getInstance();  
  137.         // 操作系统内核类型如: 386、486、586等x86  
  138.         System.out.println("操作系统:   " + OS.getArch());  
  139.         System.out.println("操作系统CpuEndian():    " + OS.getCpuEndian());//  
  140.   &nbs

TAG:

 

评分:0

我来说两句

Open Toolbar