登录 
欢迎来到陈冬冬(雪地里走)的学习天地 | 经验分享整理平台 | 陈冬冬
 服务器本次启动于:11天前 

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

2019-11-16 22:34:21 阅读:()

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

你可能感兴趣的:
      关键字:cpu(12)处理器(11)cao(8)name(8)驱动器(8)
      互动()
      评论()
      比起点赞,站长更喜欢登录后的评论
      • 0
      • 0
      • 0
      • 0
      • 0