借助Sigar API获取操作系统信息

Sigar(全称System Information Gatherer And Reporter,即系统信息收集报表器),它提供了一个开源的跨平台的收集计算机硬件和操作系统信息的API(该API底层接口用C语言编写),本文将演示如何借助Sigar API获取操作系统信息:

package com.ghj.packageoftest;

import java.net.InetAddress;

import org.hyperic.sigar.OperatingSystem;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import org.hyperic.sigar.Who;

/**
 * 借助Sigar API获取操作系统信息
 *
 * @author GaoHuanjie
 */
public class OSTool {

	public static void main(String[] args) throws SigarException {
		Sigar sigar = new Sigar();

		// 取到当前操作系统的名称
		String hostname = "";
		try {
		    hostname = InetAddress.getLocalHost().getHostName();
		} catch (Exception e) {
		    hostname = sigar.getNetInfo().getHostName();
		}
		System.out.println(hostname);

		// 获取当前操作系统的信息
		OperatingSystem operatingSystem = OperatingSystem.getInstance();
		System.out.println("operatingSystem arch:" + operatingSystem.getArch());// 操作系统内核类型如: 386、486、586等x86
		System.out.println("operatingSystem cpuEndian:" + operatingSystem.getCpuEndian());//
		System.out.println("operatingSystem dataModel:" + operatingSystem.getDataModel());//
		System.out.println("operatingSystem description:" + operatingSystem.getDescription());// 系统描述
		System.out.println("operatingSystem machine:" + operatingSystem.getMachine());//
		System.out.println("operatingSystem name:" + operatingSystem.getName());// 操作系统类型
		System.out.println("operatingSystem patchLevel:" + operatingSystem.getPatchLevel());// 操作系统补丁级别
		System.out.println("operatingSystem vendor:" + operatingSystem.getVendor());// 操作系统供应商
		System.out.println("operatingSystem vendorCodeName:" + operatingSystem.getVendorCodeName());// 供应商编码名
		System.out.println("operatingSystem vendorName:" + operatingSystem.getVendorName());// 操作系统供应商名称
		System.out.println("operatingSystem vendorVersion:" + operatingSystem.getVendorVersion());// 操作系统供应商版本
		System.out.println("operatingSystem version:" + operatingSystem.getVersion());// 操作系统的版本号

		// 获取当前系统进程表中的用户信息
		Who whoArray [] = sigar.getWhoList();
		if (whoArray != null) {
		    for (int i = 0; i < whoArray.length; i++) {
		        Who who = whoArray[i];
		        System.out.println("\n~~~~~~~~~" + i + "~~~~~~~~~~~~");
		        System.out.println("who device:" + who.getDevice());
		        System.out.println("who host:" + who.getHost());
		        System.out.println("who time:" + who.getTime());
		        System.out.println("who user:" + who.getUser());// 当前系统进程表中的用户名
		    }
		}
		sigar.close();
	}
}

0分下载示例工程

时间: 2024-10-23 23:54:09

借助Sigar API获取操作系统信息的相关文章

借助Sigar API获取磁盘信息

Sigar(全称System Information Gatherer And Reporter,即系统信息收集报表器),它提供了一个开源的跨平台的收集计算机硬件和操作系统信息的API(该API底层接口用C语言编写),本文将演示如何借助Sigar API获取磁盘信息: package com.ghj.packageoftest; import org.hyperic.sigar.FileSystem; import org.hyperic.sigar.FileSystemUsage; impor

借助Sigar API获取内存信息

Sigar(全称System Information Gatherer And Reporter,即系统信息收集报表器),它提供了一个开源的跨平台的收集计算机硬件和操作系统信息的API(该API底层接口用C语言编写),本文将演示如何借助Sigar API获取内存信息: package com.ghj.packageoftest; import org.hyperic.sigar.Mem; import org.hyperic.sigar.Sigar; import org.hyperic.sig

借助Sigar API获取CPU相关信息

Sigar(全称System Information Gatherer And Reporter,即系统信息收集报表器),它提供了一个开源的跨平台的收集计算机硬件和操作系统信息的API(该API底层接口用C语言编写),本文将演示如何借助Sigar API获取CPU相关信息: package com.ghj.packageoftest; import org.hyperic.sigar.Cpu; import org.hyperic.sigar.CpuInfo; import org.hyperi

借助Sigar API获取网络信息

Sigar(全称System Information Gatherer And Reporter,即系统信息收集报表器),它提供了一个开源的跨平台的收集计算机硬件和操作系统信息的API(该API底层接口用C语言编写),本文将演示如何借助Sigar API获取网络信息: package com.ghj.packageoftest; import org.hyperic.sigar.NetFlags; import org.hyperic.sigar.NetInterfaceConfig; impo

java web 获取客户端操作系统信息

package com.java.basic.pattern; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 获取客户端操作系统信息 * 从http的header中获取到user-agent,然后利用正则表达式判断是哪一种操作系统 * * 暂只匹配Win 7.WinXP.Win2003.Win2000.MAC.WinNT.Linux.Mac68k.Win9x * * @param userAgent r

Inxi:一个功能强大的获取Linux系统信息的命令行工具

Inxi 最初是为控制台和  IRC(网络中继聊天)开发的一个强大且优秀的命令行系统信息脚本.可以使用它获取用户的硬件和系统信息,它也用于调试或者社区技术支持工具. 使用 Inxi 可以很容易的获取所有的硬件信息:硬盘.声卡.显卡.网卡.CPU 和 RAM 等.同时也能够获取大量的操作系统信息,比如硬件驱动.Xorg  .桌面环境.内核.GCC 版本,进程,开机时间和内存等信息. 运行在命令行和 IRC 上的 Inxi 输出略有不同,IRC 上会有一些可供用户使用的默认过滤器和颜色选项.支持的

C# 网络编程之通过豆瓣API获取书籍信息(一)

这篇文章主要是讲述如何通过豆瓣API获取书籍的信息,起初看到这个内容我最初的想法是在"C# 网络编程之网页简单下载实现"中通过HttpWebResponse类下载源码,再通过正则表达式分析获取结点标签得到信息.但后来发现可以通过豆瓣API提供的编程接口实现. 该文章仅是基础性C#网络编程文章,尝试测试了下豆瓣API,并没什么高深的内容.但希望对大家有所帮助,仅供学习. (警告:文章仅供参考,提供一种想法,否则访问多次-10次被403 forbidden莫怪.建议认证使用豆瓣API) 一

python-获取操作系统信息

#!/usr/bin/env python #-*- coding:utf-8 -*- ############################ #File Name: test_platform.py #Author: frank #Mail: [email protected] #Created Time:2017-06-05 14:31:31 ############################ import platform os = platform.system() print

【转】百度API获取城市名地名(附源码)

在做一个软件时,用到了定位功能.网上有很多关于google 的GPS定位,但网上关于google定位都没有用, 搜索下原因:(这里建议大家在中国就尽量不使用系统自带的定位) 因为Google的服务器不在中国(就算能网上关于定位的代码能用,那也非常的慢,除非你的应用是在国外使用)    由于网络等原因所以定位一般会失败 于是转向使用百度api来定位. 所用到的百度API参考地址. 取得位置的百度官方sdk参考 Android定位SDK 由坐标获取地址方法参考 Geocoding API 的 7.逆