sigar-x86-winnt.dll文件拷贝到Java SDK目录的bin

  1. public static void main(String[] args) {
  2. try {
  3. // System信息,从jvm获取
  4. System.setProperty("java.library.path", "so");
  5. property();
  6. System.out.println("----------------------------------");
  7. // cpu信息
  8. cpu();
  9. System.out.println("----------------------------------");
  10. // 内存信息
  11. memory();
  12. System.out.println("----------------------------------");
  13. // 操作系统信息
  14. os();
  15. System.out.println("----------------------------------");
  16. // 用户信息
  17. who();
  18. System.out.println("----------------------------------");
  19. // 文件系统信息
  20. file();
  21. System.out.println("----------------------------------");
  22. // 网络信息
  23. net();
  24. System.out.println("----------------------------------");
  25. // 以太网信息
  26. ethernet();
  27. System.out.println("----------------------------------");
  28. } catch (Exception e1) {
  29. e1.printStackTrace();
  30. }
  31. }
  32. private static void property() throws UnknownHostException {
  33. Runtime r = Runtime.getRuntime();
  34. Properties props = System.getProperties();
  35. InetAddress addr;
  36. addr = InetAddress.getLocalHost();
  37. String ip = addr.getHostAddress();
  38. Map<String, String> map = System.getenv();
  39. String userName = map.get("USERNAME");// 获取用户名
  40. String computerName = map.get("COMPUTERNAME");// 获取计算机名
  41. String userDomain = map.get("USERDOMAIN");// 获取计算机域名
  42. System.out.println("用户名:    " + userName);
  43. System.out.println("计算机名:    " + computerName);
  44. System.out.println("计算机域名:    " + userDomain);
  45. System.out.println("本地ip地址:    " + ip);
  46. System.out.println("本地主机名:    " + addr.getHostName());
  47. System.out.println("JVM可以使用的总内存:    " + r.totalMemory());
  48. System.out.println("JVM可以使用的剩余内存:    " + r.freeMemory());
  49. System.out.println("JVM可以使用的处理器个数:    " + r.availableProcessors());
  50. System.out.println("Java的运行环境版本:    " + props.getProperty("java.version"));
  51. System.out.println("Java的运行环境供应商:    " + props.getProperty("java.vendor"));
  52. System.out.println("Java供应商的URL:    " + props.getProperty("java.vendor.url"));
  53. System.out.println("Java的安装路径:    " + props.getProperty("java.home"));
  54. System.out.println("Java的虚拟机规范版本:    " + props.getProperty("java.vm.specification.version"));
  55. System.out.println("Java的虚拟机规范供应商:    " + props.getProperty("java.vm.specification.vendor"));
  56. System.out.println("Java的虚拟机规范名称:    " + props.getProperty("java.vm.specification.name"));
  57. System.out.println("Java的虚拟机实现版本:    " + props.getProperty("java.vm.version"));
  58. System.out.println("Java的虚拟机实现供应商:    " + props.getProperty("java.vm.vendor"));
  59. System.out.println("Java的虚拟机实现名称:    " + props.getProperty("java.vm.name"));
  60. System.out.println("Java运行时环境规范版本:    " + props.getProperty("java.specification.version"));
  61. System.out.println("Java运行时环境规范供应商:    " + props.getProperty("java.specification.vender"));
  62. System.out.println("Java运行时环境规范名称:    " + props.getProperty("java.specification.name"));
  63. System.out.println("Java的类格式版本号:    " + props.getProperty("java.class.version"));
  64. System.out.println("Java的类路径:    " + props.getProperty("java.class.path"));
  65. System.out.println("加载库时搜索的路径列表:    " + props.getProperty("java.library.path"));
  66. System.out.println("默认的临时文件路径:    " + props.getProperty("java.io.tmpdir"));
  67. System.out.println("一个或多个扩展目录的路径:    " + props.getProperty("java.ext.dirs"));
  68. System.out.println("操作系统的名称:    " + props.getProperty("os.name"));
  69. System.out.println("操作系统的构架:    " + props.getProperty("os.arch"));
  70. System.out.println("操作系统的版本:    " + props.getProperty("os.version"));
  71. System.out.println("文件分隔符:    " + props.getProperty("file.separator"));
  72. System.out.println("路径分隔符:    " + props.getProperty("path.separator"));
  73. System.out.println("行分隔符:    " + props.getProperty("line.separator"));
  74. System.out.println("用户的账户名称:    " + props.getProperty("user.name"));
  75. System.out.println("用户的主目录:    " + props.getProperty("user.home"));
  76. System.out.println("用户的当前工作目录:    " + props.getProperty("user.dir"));
  77. }
  78. private static void memory() throws SigarException {
  79. Sigar sigar = new Sigar();
  80. Mem mem = sigar.getMem();
  81. // 内存总量
  82. System.out.println("内存总量:    " + mem.getTotal() / 1024L + "K av");
  83. // 当前内存使用量
  84. System.out.println("当前内存使用量:    " + mem.getUsed() / 1024L + "K used");
  85. // 当前内存剩余量
  86. System.out.println("当前内存剩余量:    " + mem.getFree() / 1024L + "K free");
  87. Swap swap = sigar.getSwap();
  88. // 交换区总量
  89. System.out.println("交换区总量:    " + swap.getTotal() / 1024L + "K av");
  90. // 当前交换区使用量
  91. System.out.println("当前交换区使用量:    " + swap.getUsed() / 1024L + "K used");
  92. // 当前交换区剩余量
  93. System.out.println("当前交换区剩余量:    " + swap.getFree() / 1024L + "K free");
  94. }
  95. private static void cpu() throws SigarException {
  96. Sigar sigar = new Sigar();
  97. CpuInfo infos[] = sigar.getCpuInfoList();
  98. CpuPerc cpuList[] = null;
  99. cpuList = sigar.getCpuPercList();
  100. for (int i = 0; i < infos.length; i++) {// 不管是单块CPU还是多CPU都适用
  101. CpuInfo info = infos[i];
  102. System.out.println("第" + (i + 1) + "块CPU信息");
  103. System.out.println("CPU的总量MHz:    " + info.getMhz());// CPU的总量MHz
  104. System.out.println("CPU生产商:    " + info.getVendor());// 获得CPU的卖主,如:Intel
  105. System.out.println("CPU类别:    " + info.getModel());// 获得CPU的类别,如:Celeron
  106. System.out.println("CPU缓存数量:    " + info.getCacheSize());// 缓冲存储器数量
  107. printCpuPerc(cpuList[i]);
  108. }
  109. }
  110. private static void printCpuPerc(CpuPerc cpu) {
  111. System.out.println("CPU用户使用率:    " + CpuPerc.format(cpu.getUser()));// 用户使用率
  112. System.out.println("CPU系统使用率:    " + CpuPerc.format(cpu.getSys()));// 系统使用率
  113. System.out.println("CPU当前等待率:    " + CpuPerc.format(cpu.getWait()));// 当前等待率
  114. System.out.println("CPU当前错误率:    " + CpuPerc.format(cpu.getNice()));//
  115. System.out.println("CPU当前空闲率:    " + CpuPerc.format(cpu.getIdle()));// 当前空闲率
  116. System.out.println("CPU总的使用率:    " + CpuPerc.format(cpu.getCombined()));// 总的使用率
  117. }
  118. private static void os() {
  119. OperatingSystem OS = OperatingSystem.getInstance();
  120. // 操作系统内核类型如: 386、486、586等x86
  121. System.out.println("操作系统:    " + OS.getArch());
  122. System.out.println("操作系统CpuEndian():    " + OS.getCpuEndian());//
  123. System.out.println("操作系统DataModel():    " + OS.getDataModel());//
  124. // 系统描述
  125. System.out.println("操作系统的描述:    " + OS.getDescription());
  126. // 操作系统类型
  127. // System.out.println("OS.getName():    " + OS.getName());
  128. // System.out.println("OS.getPatchLevel():    " + OS.getPatchLevel());//
  129. // 操作系统的卖主
  130. System.out.println("操作系统的卖主:    " + OS.getVendor());
  131. // 卖主名称
  132. System.out.println("操作系统的卖主名:    " + OS.getVendorCodeName());
  133. // 操作系统名称
  134. System.out.println("操作系统名称:    " + OS.getVendorName());
  135. // 操作系统卖主类型
  136. System.out.println("操作系统卖主类型:    " + OS.getVendorVersion());
  137. // 操作系统的版本号
  138. System.out.println("操作系统的版本号:    " + OS.getVersion());
  139. }
  140. private static void who() throws SigarException {
  141. Sigar sigar = new Sigar();
  142. Who who[] = sigar.getWhoList();
  143. if (who != null && who.length > 0) {
  144. for (int i = 0; i < who.length; i++) {
  145. // System.out.println("当前系统进程表中的用户名" + String.valueOf(i));
  146. Who _who = who[i];
  147. System.out.println("用户控制台:    " + _who.getDevice());
  148. System.out.println("用户host:    " + _who.getHost());
  149. // System.out.println("getTime():    " + _who.getTime());
  150. // 当前系统进程表中的用户名
  151. System.out.println("当前系统进程表中的用户名:    " + _who.getUser());
  152. }
  153. }
  154. }
  155. private static void file() throws Exception {
  156. Sigar sigar = new Sigar();
  157. FileSystem fslist[] = sigar.getFileSystemList();
  158. for (int i = 0; i < fslist.length; i++) {
  159. System.out.println("分区的盘符名称" + i);
  160. FileSystem fs = fslist[i];
  161. // 分区的盘符名称
  162. System.out.println("盘符名称:    " + fs.getDevName());
  163. // 分区的盘符名称
  164. System.out.println("盘符路径:    " + fs.getDirName());
  165. System.out.println("盘符标志:    " + fs.getFlags());//
  166. // 文件系统类型,比如 FAT32、NTFS
  167. System.out.println("盘符类型:    " + fs.getSysTypeName());
  168. // 文件系统类型名,比如本地硬盘、光驱、网络文件系统等
  169. System.out.println("盘符类型名:    " + fs.getTypeName());
  170. // 文件系统类型
  171. System.out.println("盘符文件系统类型:    " + fs.getType());
  172. switch (fs.getType()) {
  173. case 0: // TYPE_UNKNOWN :未知
  174. break;
  175. case 1: // TYPE_NONE
  176. break;
  177. case 2: // TYPE_LOCAL_DISK : 本地硬盘
  178. FileSystemUsage usage = sigar.getFileSystemUsage(fs.getDirName());
  179. // 文件系统总大小
  180. System.out.println(fs.getDevName() + "总大小:    " + usage.getTotal() + "KB");
  181. // 文件系统剩余大小
  182. System.out.println(fs.getDevName() + "剩余大小:    " + usage.getFree() + "KB");
  183. // 文件系统可用大小
  184. System.out.println(fs.getDevName() + "可用大小:    " + usage.getAvail() + "KB");
  185. // 文件系统已经使用量
  186. System.out.println(fs.getDevName() + "已经使用量:    " + usage.getUsed() + "KB");
  187. double usePercent = usage.getUsePercent() * 100D;
  188. // 文件系统资源的利用率
  189. System.out.println(fs.getDevName() + "资源的利用率:    " + usePercent + "%");
  190. System.out.println(fs.getDevName() + "读出:    " + usage.getDiskReads());
  191. System.out.println(fs.getDevName() + "写入:    " + usage.getDiskWrites());
  192. break;
  193. case 3:// TYPE_NETWORK :网络
  194. break;
  195. case 4:// TYPE_RAM_DISK :闪存
  196. break;
  197. case 5:// TYPE_CDROM :光驱
  198. break;
  199. case 6:// TYPE_SWAP :页面交换
  200. break;
  201. }
  202. }
  203. return;
  204. }
  205. private static void net() throws Exception {
  206. Sigar sigar = new Sigar();
  207. String ifNames[] = sigar.getNetInterfaceList();
  208. for (int i = 0; i < ifNames.length; i++) {
  209. String name = ifNames[i];
  210. NetInterfaceConfig ifconfig = sigar.getNetInterfaceConfig(name);
  211. System.out.println("网络设备名:    " + name);// 网络设备名
  212. System.out.println("IP地址:    " + ifconfig.getAddress());// IP地址
  213. System.out.println("子网掩码:    " + ifconfig.getNetmask());// 子网掩码
  214. if ((ifconfig.getFlags() & 1L) <= 0L) {
  215. System.out.println("!IFF_UP...skipping getNetInterfaceStat");
  216. continue;
  217. }
  218. NetInterfaceStat ifstat = sigar.getNetInterfaceStat(name);
  219. System.out.println(name + "接收的总包裹数:" + ifstat.getRxPackets());// 接收的总包裹数
  220. System.out.println(name + "发送的总包裹数:" + ifstat.getTxPackets());// 发送的总包裹数
  221. System.out.println(name + "接收到的总字节数:" + ifstat.getRxBytes());// 接收到的总字节数
  222. System.out.println(name + "发送的总字节数:" + ifstat.getTxBytes());// 发送的总字节数
  223. System.out.println(name + "接收到的错误包数:" + ifstat.getRxErrors());// 接收到的错误包数
  224. System.out.println(name + "发送数据包时的错误数:" + ifstat.getTxErrors());// 发送数据包时的错误数
  225. System.out.println(name + "接收时丢弃的包数:" + ifstat.getRxDropped());// 接收时丢弃的包数
  226. System.out.println(name + "发送时丢弃的包数:" + ifstat.getTxDropped());// 发送时丢弃的包数
  227. }
  228. }
  229. private static void ethernet() throws SigarException {
  230. Sigar sigar = null;
  231. sigar = new Sigar();
  232. String[] ifaces = sigar.getNetInterfaceList();
  233. for (int i = 0; i < ifaces.length; i++) {
  234. NetInterfaceConfig cfg = sigar.getNetInterfaceConfig(ifaces[i]);
  235. if (NetFlags.LOOPBACK_ADDRESS.equals(cfg.getAddress()) || (cfg.getFlags() & NetFlags.IFF_LOOPBACK) != 0
  236. || NetFlags.NULL_HWADDR.equals(cfg.getHwaddr())) {
  237. continue;
  238. }
  239. System.out.println(cfg.getName() + "IP地址:" + cfg.getAddress());// IP地址
  240. System.out.println(cfg.getName() + "网关广播地址:" + cfg.getBroadcast());// 网关广播地址
  241. System.out.println(cfg.getName() + "网卡MAC地址:" + cfg.getHwaddr());// 网卡MAC地址
  242. System.out.println(cfg.getName() + "子网掩码:" + cfg.getNetmask());// 子网掩码
  243. System.out.println(cfg.getName() + "网卡描述信息:" + cfg.getDescription());// 网卡描述信息
  244. System.out.println(cfg.getName() + "网卡类型" + cfg.getType());//
  245. }
  246. }

siger获取 本机信息相关推荐

  1. request对象简介和获取客户机信息

    request对象(请求对象)ServletRequest|HttpServletRequest 获取客户机信息getRemoteAddr(*****) 获取IP地址getMethod() (**** ...

  2. java 获取本机信息,使用Java获取系统信息的常用代码整理总结

    1.获取CPU和内存信息 ? 2.获取本机的IP地址: ? 3.获得网卡地址 ? 4.获得操作系统帐号 ? 5.获得操作系统版本 ? 6.一些常用的信息获得方式整理 java.version    J ...

  3. C#中ManagementClass获取本机信息

    C# 提供了ManagementClass类来获取本机的一些基本信息,比如CPU的个数,CPU的频率,网卡的MAC,内存的大小,硬盘的大小等. 获取本机MAC地址: /// <summary&g ...

  4. C#中使用ManagementClass获取本机信息

    C#提供 ManagementClass来对机器的信息进行管理,可以通过设定不同的管理类来获得机器的基本信息.下面给出了一些基本的信息的获取方法,包括获取CPU数目,cpu频率,内存大小,硬盘大小. ...

  5. SAP 获取本机信息(IP及电脑名称)

    导语:最近在做日志的东西,需要记录用户的IP,以及电脑名称,找了一下,SAP有两个类可以实现. 一.效果展示 二.代码 *&---------------------------------- ...

  6. Java 使用Virtual Serial Port Driver及Modsim32进行modbus-rtu协议模拟(从机)并使用java当做主机(Maven项目)进行从机信息获取及修改

    上面我们写了一篇关于modbus-tcp的文章,这一篇我们主要将关于modbus-rtu的对接方式,好了,废话不多说,直接开搞. 一.环境准备 1.下载Virtual Serial Port Driv ...

  7. bat批处理开发-wifi联网系列(4):连接wifi,获取本机ip、网关及dns,并通过ping对wifi网络的连通性可用性进行检测

    公司wifi很不稳定,编写了个wifi断网后自动重连的批处理,主要包括:可用wifi查询.联网.wifi切换感知.自动检测及掉线重连,网络状态分析等功能. 本次分享第四部分:连接wifi,并对wifi ...

  8. 获取本机CPU,硬盘等使用情况

    早上的时候接到主管的一个任务,要获取服务器上的cpu,硬盘, 数据库等 的使用情况,并以邮件的方式发给boss, = =没办法,公司的服务器真是不敢恭维,顺便吐槽一下公司的网速,卡的时候30k左右徘徊 ...

  9. python 提取网关信息_python:使用netifaces模块获取本机IP网关等信息

    python获取本机IP有很多种方法,可每种方法都有局限性. 使用netifaces模块获取本机IP网关等信息,需要安装netifaces模块,不管windows还是linux都可以通用. 一.程序: ...

最新文章

  1. Zookeeper和Redis实现分布式锁,附我的可靠性分析
  2. 框架:mybatis常用标签(refid、foreach、trim)
  3. STL源代码分析(ch2 内存分配)destroy
  4. leetcode96. 不同的二叉搜索树 动归vs数学?
  5. select选中的值_selenium下拉框处理(select)
  6. Android 系统(226)---Android 阿拉伯语适配
  7. 开发人员学Linux(13):CentOS7安装配置IT设备监控系统Zabbix
  8. html5标签之表单元素
  9. mysql 交叉表 存储过程_用于生成交叉表的存储过程的存储过程
  10. Symfony2Book16:Symfony2内部03-事件调度
  11. Ubuntu14.04 64位 JAVA Eclipse ADT AndroidStudio 安装
  12. springboot配置文件yml格式
  13. java毕业设计房产中介系统mybatis+源码+调试部署+系统+数据库+lw
  14. HTC Vive榜单:盘点一周最受欢迎的VR应用
  15. 装完windows后发现C盘空间变小原因
  16. 庖丁(Paoding)分词的词典原理解析
  17. 【web安全】——floor报错注入
  18. Opencv去除高光
  19. Discuz论坛附件下载权限绕过漏洞
  20. 苹果进入品牌价值衰减期

热门文章

  1. Geant4 不完全学习指南9(粒子跟踪和物理过程)
  2. python:判断字符串类型方法
  3. Relu函数与Leaky Relu函数
  4. Hive建表基本操作
  5. 名帖11 邓石如 篆书《般若波罗蜜多心经》
  6. 移动端开发调试工具——eruda
  7. ubuntu下发射wifi热点
  8. 2011年春运电话订火车票流程
  9. Hive优化---or
  10. 关于《伤心者》,关于那些看不到结果的努力