siger获取 本机信息

siger获取 本机信息sigar x86 winnt dll 文件拷贝到 Java nbsp SDK 目录的 binpublic nbsp static nbsp void nbsp main String nbsp args nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp try nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp System 信息 从 jvm 获取 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp System setProperty java library path nbsp so

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.   
  33.     private static void property() throws UnknownHostException {  
  34.         Runtime r = Runtime.getRuntime();  
  35.         Properties props = System.getProperties();  
  36.         InetAddress addr;  
  37.         addr = InetAddress.getLocalHost();  
  38.         String ip = addr.getHostAddress();  
  39.         Map

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


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210608.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午7:16
下一篇 2026年3月19日 上午7:17


相关推荐

  • android中ListView的用法[通俗易懂]

    android中ListView的用法[通俗易懂]地址:https://www.cnblogs.com/s-y-j/p/6548032.htmlLisView介绍:(一)、ListView概念:ListView是Android中最重要的组件之

    2022年7月1日
    26
  • 百度地图api文档_奥维互动地图使用教程

    百度地图api文档_奥维互动地图使用教程新版百度地图API增加了发布版SHA1,开发版SHA1按官方教程操作即可,这里介绍一下发布版SHA1的获取方法。为apk签名,生成keystore文件(如果已经有keystore文件,跳过此步骤)打开cmd,定位文件夹到.andorid下,默认路径是users/用户名/.android输入keytool-list-v-keystore*.jks,*.jks为keystor

    2022年8月11日
    22
  • 三、FFmpeg安装

    三、FFmpeg安装1 FFmpeg 介绍 FFmpeg 是一个完整的 跨平台的解决方案 用于记录 转换和流化音 视频 FFmpeg 采用 LGPL 或 GPL 许可证 提供了录制 转换及流化音 视频的完整解决方案 其包含了非常先进的音 视频编解码库 libavcodec FFmpeg 是在 Linux 平台下开发的但是它同样也可以在其他操作系统环境中编译运行 包扩 Windows MacOS 等系统 这个项目最早是由 FabriceBella 发起的 在 2004 年至 2015 年由 MichaelNiede

    2026年3月17日
    2
  • 十折交叉验证

    十折交叉验证交叉验证主要分成以下几类 1 k foldercross validation k 个子集 每个子集均做一次测试集 其余的作为训练集 交叉验证重复 k 次 每次选择一个子集作为测试集 并将 k 次的平均交叉验证识别正确率作为结果 优点 所有的样本都被作为了训练集和测试集 每个样本都被验证一次 10 folder 通常被使用 2 K 2foldercross validation 是 k folderc

    2026年3月20日
    1
  • php开发微信公众号步骤_PHP接口

    php开发微信公众号步骤_PHP接口最近在帮别人做个小项目,要用到微信公众平台,虽然以前也做过微信开发,但是没有深入的自己去搞一套微信开发的东西(也搞不了,那时候没能力,也弄不到微信公众号),最近开始搞,第一步就是配置微信基本配置(账号注册我就不赘述了)。我们首先要启用服务器配置,并填写URL,token,AESKey,加密方式那么URL怎么填写呢?网上有很多种教程,最靠谱的一种是去新浪云注册个免费的PHP服务器,

    2022年8月20日
    12
  • 罗技k375s键盘怎么连接_罗技k380键盘怎么连接手机

    罗技k375s键盘怎么连接_罗技k380键盘怎么连接手机罗技K375s无线蓝牙键盘使用总结(连接|手感)首先我们先来试试优联连接。优联只支持PC(废话)。如果之前没有配对过,需要再下个优联的软件来进行配对。不得不说,罗技的网站打开真慢,服务器估计在国外。而且中文主页,K375S竟然还没上架,列表里没有,也搜索不到。我用的是旧的优联,已经配对了M570。配对新设备之后,其实就连上了。要你输入一些字符确认。不过这里的K370S是怎么回事,这命名……既然…

    2022年10月15日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号