sigar在Centos和Windows下使用java系统软硬件配置信息

狄赞
2023-12-01

背景

本来这个网上一大堆实在没什么想写的,但是好像大多数都是互相抄袭的,在centos根本上用不了,因此我整理下自己具体实现的步骤。

使用环境

sigar版本:hyperic-sigar-1.6.4 
依赖的链接库: libsigar-amd64-linux.so,sigar-amd64-winnt.dll

操作系统: 
window10 64位,cetos7 64位

window

sigar-amd64-winnt.dll拷贝到java jdk的安装路径下的bin目录 
我这里是 
C:\Program Files\Java\jdk1.8.0_121\bin

Centos

libsigar-amd64-linux.so 拷贝到/usr/lib64/下面 
授权

sudo chmod 744 /usr/lib64/libsigar-amd64-linux.so
chmod a+x /usr/lib64/libsigar-amd64-linux.so 
  • 1
  • 2
  • 3

程序源码

maven依赖

    <dependency>
        <groupId>org.fusesource</groupId> <artifactId>sigar</artifactId> <version>1.6.4</version> </dependency>

java源码

package apply;

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(); System.out.println("----------------------------------"); // cpu信息 cpu(); System.out.println("----------------------------------"); // 内存信息 //memory(); System.out.println("----------------------------------"); // 操作系统信息 // os(); System.out.println("----------------------------------"); // 用户信息 // who(); System.out.println("----------------------------------"); // 文件系统信息 // file(); System.out.println("----------------------------------"); // 网络信息 // net(); System.out.println("----------------------------------"); // 以太网信息 //ethernet(); System.out.println("----------------------------------"); } 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
 类似资料: