距离上一次写博客已经过去2个半的月份了,也是工作忙,也是懒,也是在积攒文章吧,反正就是许久没有写了,本次分享一个用Java获取cao作系统和硬件信息的组件,在十一假期之前就准备分享的,然这些详细的参数实在是较多,本文的重点是将这些参数详细罗列出来,给出个人对参数的理解和尴尬的翻译结果,轻点喷。
本站对于博客的2.0的实现期待较高,所以在后台的管理主页面也计划将服务器的一些参数给读取显示出来,它们不仅限于Jdk与Web容器的参数,同时还要包括cao作系统自身的一些硬件参数,此为背景。
围绕这一大背景还是网罗相关的实现,其中Sigar与oshi的实现看起来比较给力,但前者需要依赖不同cao作系统的动态链接库文件实现,功能强大与否暂且不表,在我这里的背景下肯定是要考虑采用oshi的实现了,它的在实现上跨平台,每个参数都根据不同的cao作系统进行了实现,对于一些常用的参数,我们不需要调用系统底层接口,oshi是Java的免费基于JNA的(本机)cao作系统和硬件信息库。它不需要安装任何其他本机库,并且旨在提供一种跨平台的实现来检索系统信息,例如cao作系统版本,进程,内存和CPU使用率,磁盘和分区,设备,传感器等,下文中所有的描述均是围绕oshi。
支持平台Windows•Linux•Mac OS X•Unix(Solaris,FreeBSD)
支持的功能计算机系统和固件,底板
cao作系统和版本/内部版本
物理(核心)和逻辑(超线程)CPU
系统和每个处理器的负载百分比和滴答计数器
CPU正常运行时间,进程和线程
进程正常运行时间,CPU,内存使用率
已使用/可用的物理和虚拟内存
挂载的文件系统(类型,可用空间和总空间)
磁盘驱动器(型号,序列号,大小)和分区
网络接口(IP,带宽输入/输出)
电池状态(电量百分比,剩余时间)
连接的显示器(带有EDID信息)
USB设备
传感器(温度,风扇速度,电压)
整理参数详细(operatingSystemcao作系统、hardware主板),整理太耗时间了,其实有用的就那么几个,然后算是你能看到的所有相关文章中整理的参数最完整的了吧
operatingSystem
bitness电脑位数
elevated是否管理员权限
family家庭版
manufacturer制造商
processCount进程数量
processId 进程ID
systemBootTime 系统启动时间(感觉不准)
systemUptime系统运行时间 (感觉不准,任务管理器处CPU那里有正常运行时间)
threadCount线程数量
version 版本
buildNumber 17763
codeName家庭版/标准版/旗舰版
version版本号
networkParams网络参数
dnsServers[0]dns服务器
[0]192.168.1.1
domainName计算机域名
hostName计算机名
ipv4DefaultGateway IP4默认网关
ipv6DefaultGateway IP6默认网关
fileSystem文件系统
maxFileDescriptors最大文件描述符
openFileDescriptors打开文件描述符
fileStores[ ]文件存储,含本地磁盘与可移动磁盘
[description] 磁盘驱动器描述:本地驱动器、可移动启动器(插入的U盘)
[freeInodes] 磁盘驱动器上的可用/空闲索引节点
[freeSpace] 磁盘驱动器上的可用空间,硬盘可用大小,如“1.34G”
[logicalVolume] 文件系统的逻辑卷
[mount] 盘符号,如:“C:\”
[name] 盘符名称,如:“本地固定磁盘 (C:)”
[totalInodes] 文件系统的整数的最大/最大数目
[totalSpace] 磁盘总大小,如 5.20G
[type] 磁盘类型,NTFS 与 FAT32
[uUID] 磁盘唯一标识,每次获取都一样
[usableSpace] 驱动器上的可用空间
[volume] 文件系统卷
hardware
computerSystem 计算机系统
baseboard 电脑主板
manufacturer 主板生产商
model主板模型
serialNumber 主板序列号
version主板版本
firmware 电脑固件
description 固件描述
manufacturer 固件生产商
name固件名称
releaseDate发布日期
version版本号
manufacturer 电脑生产商
model模型
serialNumber序列化
diskStores[]磁盘存储
currentQueueLength要设置的磁盘队列的长度
model磁盘模型:“SAMSUNG MZVLB256HAHQ-00000 (标准磁盘驱动器)”、“General USB Flash Disk USB Device (标准磁盘驱动器)”
name名称
partitions[] 分区
[identification]磁盘 #0,分区 #1
[major]重要的
[minor]磁盘编号
[mountPoint]盘符
[name]名称
[size]磁盘大小
[type]磁盘类型:“GPT: 系统”、“GPT: 基本数据”
[uuid]磁盘唯一编号
readBytes读取的字节数
reads读
serial串行
size磁盘大小
timeStamp时间戳
transferTime读取或写入设置所用的毫秒数
writeBytes写入的字节数
writes写
displays[]
[0]
edid 监视器等的显示对象的数组
memory内存信息
available可用内存
pageSize 每页显示大小
total内存总大小
virtualMemory虚拟内存信息
swapPagesIn从分页/交换文件读取以解决硬页错误的页数
swapPagesOut写入分页/交换文件以释放物理内存空间的页数
swapTotal分页/交换文件的当前大小
swapUsed提交到分页/交换文件的当前内存
networkIFs[] 网卡设备
[0]
bytesRecv字节接收
bytesSent字节发送
displayName显示名称(网卡、蓝牙、USB设备)
iPv4addr[]
[0]ip4地址
iPv6addr[]
[0]ip6地址
inErrors输入错误数
mTU
macaddrmac地址
name网卡名称,按编号显示
outErrors输出错误数
packetsRecv数据包接收
packetsSent数据包发送
speed速度,千兆/百兆
timeStamp时间戳
powerSources[] 电源
[0]
name系统电池名称
remainingCapacity剩余电量
timeRemaining剩余时间(单位秒,如2小时30分钟,则对应的值为:2.50)
processor 处理器
contextSwitches上下文切换
cpu64bitCPU是否64位
currentFreq[]当前频率
[0]8核cpu
family家庭
identifier标志符
interrupts中断数
logicalProcessorCount处理器个数
logicalProcessors[]逻辑处理器
[0]
numaNode节点
physicalPackageNumber实际包装号
physicalProcessorNumber物理处理器号
processorGroup处理器组
processorNumber处理器编号
maxFreq最大频率
model模型
name处理器名称
physicalPackageCount物理包个数
physicalProcessorCount物理处理器个数
processorCpuLoadTicks[]处理器CPU负载信号
[] 8个数组元素,每个元素8个数组值
processorID处理器ID
stepping踏步
systemCpuLoadTicks[]系统CPU负载信号
[] 8个数组元素值
vendor供应商
vendorFreq供应商频率
sensors 传感器
cpuTemperaturecpu温度(0.0)
cpuVoltagecpu电压(0.0)
fanSpeeds []风扇转速([])
soundCards[] 声卡
[0]
codec音频名称编码
driverVersion驱动版本
name音频名称
参考代码
com.github.oshioshi-core4.0.0@Testpublic voidtestSystem(){
System.out.println(SystemInfo.getCurrentPlatformEnum());
SystemInfo systemInfo =newSystemInfo();
System.out.println(JSONObject.toJSONString(systemInfo ,true));
}
输出结果