使用Java获取操作系统和硬件信息
https://www.chendd.cn/information/viewInformation/experienceShare/332.a
距离上一次写博客已经过去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>
@Testpublic 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
使用Java获取操作系统和硬件信息相关推荐
- Java 获取操作系统名字、系统版本、cpu信息
Java 获取操作系统名字.系统版本.cpu信息 System.getProperty("os.name");//得到操作系统名字 System.getProperty(" ...
- Java基础:获取操作系统及浏览器信息
Java基础:获取操作系统及浏览器信息 前言 今天博主将为大家分享Java基础:获取操作系统及浏览器信息,不喜勿喷,如有异议欢迎讨论! 有一个强大的地基才能写出健壮的程序! User Agent的含义 ...
- 使用IPMi获取服务器的硬件信息,如风扇转速、cpu等
开启IPMI模块 IPMI是服务器的智能化管理平台接口,我们要通过这个接口获取所有的硬件信息以及控制服务器开关机. 使用IPMI的前提是服务器支持IPMI即带有BMC的硬件模块,将网线接到BMC模块就 ...
- Java获取照片的Exif信息,并解析GPS
Java获取照片的Exif信息,并解析GPS 1. 效果图 2. 什么是Exif? 3. 源代码 参考 ❤️ 这篇博客将介绍什么EXIF,以及如何用Java语言读取Exif信息,并转换经纬度为位置信息 ...
- Java获取12306余票信息(一)
写在前面 写给自己,也分享给大家. Java获取12306余票信息(一) Java获取12306余票信息(二) Java获取12306余票信息(三) 步骤: 首先找找12306的API 1.打开谷歌浏 ...
- Java获取12306余票信息(二)
接上 前面我们说到如何用Firefox浏览器抓取数据,并 对json进行了分析,下面就是用Java代码来进行操作.以下代码都没有导入包,有需要自行导入 Java获取12306余票信息(一) Java获 ...
- c 获取计算机相关信息,C#编程获取各种电脑硬件信息的方法示例
本文实例讲述了C#编程获取各种电脑硬件信息的方法.分享给大家供大家参考,具体如下: 获取CPU编号: ManagementClass mc = new ManagementClass("Wi ...
- JAVA通过oshi获取系统和硬件信息
OSHI 是基于 JNA 的(本地)操作系统和硬件信息库.它不需要安装任何其他额外的本地库,旨在提供一种跨平台的实现来检索系统信息,例如操作系统版本.进程.内存和 CPU 使用率.磁盘和分区.设备.传 ...
- Android获取系统的硬件信息、系统版本以及如何检测ROM类型
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/52438706 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...
最新文章
- 博士毕业后,去哪儿?
- 7小时44分最佳,睡多睡少都不好,养成习惯也没用
- JdbcType类型和Java类型的对应关系
- android gradle is插件,android gradle 插件创建 configuration
- 关于逻辑回归,面试官们都怎么问
- UML轻松入门--类和对象
- 动手学PaddlePaddle(5):迁移学习
- 洛谷P3803 【模板】多项式乘法(FFT)
- android /data文件夹无法显示内容
- 如何显示python的内置模块_Python 如何查看Python自带的模块 - 弟球嗑学
- java 多线程——一个定时调度的例子
- RHCE认证培训+考试七天实录(三)
- 如何在一个元素上有多个CSS过渡?
- 【数据结构(C语言)】数据结构-表
- html5游戏开发教程实战:五子棋、四子棋、围棋、翻转棋四种对弈游戏,仅仅100行代码...
- 像素和厘米怎么换算_像素 amp;amp; 分辨率的那段剪不断理还乱的关系
- moea切比雪夫_基于分解的多目标进化优化MOEA/D之切比雪夫方法代码
- python提取句子_关于python:从句子中提取介词短语
- win7上的截图小工具
- 关于账号的转换的一点经验Hive