使用Java获取操作系统和硬件信息

oshi
placeholder image
admin 发布于:2019-11-16 22:34:21
阅读:loading

距离上一次写博客已经过去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)

支持的功能

  • 计算机系统和固件,底板

  • 操作系统和版本/内部版本

  • 物理(核心)和逻辑(超线程)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

macaddr mac地址

name 网卡名称,按编号显示

outErrors 输出错误数

packetsRecv 数据包接收

packetsSent 数据包发送

speed 速度,千兆/百兆

timeStamp 时间戳

powerSources[]  电源

[0]

name 系统电池名称

remainingCapacity 剩余电量

timeRemaining 剩余时间(单位秒,如2小时30分钟,则对应的值为:2.50)

processor 处理器

contextSwitches 上下文切换

cpu64bit CPU是否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  传感器

cpuTemperature cpu温度(0.0)

cpuVoltage cpu电压(0.0)

fanSpeeds  [] 风扇转速([])

soundCards[]  声卡

[0]

codec 音频名称编码

driverVersion 驱动版本

name 音频名称

参考代码

<dependency>
    <
groupId>com.github.oshi</groupId>
    <
artifactId>oshi-core</artifactId>
    <
version>4.0.0</version>
</
dependency>

@Test
public void testSystem(){
    System.
out.println(SystemInfo.getCurrentPlatformEnum());
    SystemInfo systemInfo =
new SystemInfo();
    System.
out.println(JSONObject.toJSONString(systemInfo , true));
}

输出结果

本机信息.json.txt

官网github项目:https://github.com/oshi/oshi


上述许多内容已经过时和过期了,留存本篇文章仅为方便个人查看,原始文章的信息参考:

原始链接:https://www.chendd.cn/information/viewInformation/experienceShare/332.a

最后更新:2019-11-16 22:34:21

访问次数:989

评论次数:1

点赞个数:3,[相当给力:3]

 点赞


 发表评论

当前回复:作者

 评论列表


留言区