OSHI 是一个免费的基于 JNA(本机)的 Java 操作系统和硬件信息库。它不需要安装任何额外的本地库,旨在提供跨平台实现来检索系统信息,例如操作系统版本、进程、内存和 CPU 使用率、磁盘和分区、设备、传感器等。
支持的平台
Windows • Linux • macOS • Unix(AIX、FreeBSD、OpenBSD、Solaris)
下载和依赖管理
稳定版
- JDK8:oshi -core-6.1.6
- JPMS:oshi -core-java11-6.1.6
- JDK6:oshi-core-3.14.0
当前开发 (SNAPSHOT) 下载
- JDK8:oshi -core-6.1.7-SNAPSHOT
- JPMS:oshi-core-java11-6.1.7-SNAPSHOT
文档
- API (javadocs)
- FAQ
- 更改日志
- 性能注意事项
- 主要版本的重大变化
- 样本输出
- 使用 OSHI 的应用程序和项目
用法
- 在您的类路径中包含 OSHI 及其依赖项。我们强烈建议您将 OSHI 作为依赖项添加到项目依赖项管理器(例如 Maven 或 Gradle)中。
- 创建一个新的实例
SystemInfo
- 使用 getter from
SystemInfo
访问硬件或操作系统组件,例如:
<span style="color:#"><span style="background-color:#f5f5f5"><code class="language-java"><span style="color:#">SystemInfo</span><span style="color:#000000"> si </span><span style="color:#">=</span> <span style="color:#000088">new</span> <span style="color:#">SystemInfo</span><span style="color:#">();</span> <span style="color:#">HardwareAbstractionLayer</span><span style="color:#000000"> hal </span><span style="color:#">=</span><span style="color:#000000"> si</span><span style="color:#">.</span><span style="color:#000000">getHardware</span><span style="color:#">();</span> <span style="color:#">CentralProcessor</span><span style="color:#000000"> cpu </span><span style="color:#">=</span><span style="color:#000000"> hal</span><span style="color:#">.</span><span style="color:#000000">getProcessor</span><span style="color:#">();</span></code></span></span>
有关示例,请参见SystemInfoTest.java。要查看您的机器的示例输出:
<span style="color:#"><span style="background-color:#f5f5f5"><code class="language-sh"><span style="color:#000000">git clone https</span><span style="color:#">://</span><span style="color:#000000">github</span><span style="color:#">.</span><span style="color:#000000">com</span><span style="color:#">/</span><span style="color:#000000">oshi</span><span style="color:#">/</span><span style="color:#000000">oshi</span><span style="color:#">.</span><span style="color:#000000">git </span><span style="color:#">&&</span><span style="color:#000000"> cd oshi </span><span style="color:#">./</span><span style="color:#000000">mvnw test</span><span style="color:#">-</span><span style="color:#000000">compile </span><span style="color:#">-</span><span style="color:#000000">pl oshi</span><span style="color:#">-</span><span style="color:#000000">core exec</span><span style="color:#">:</span><span style="color:#000000">java \ </span><span style="color:#">-</span><span style="color:#">Dexec</span><span style="color:#">.</span><span style="color:#000000">mainClass</span><span style="color:#">=</span><span style="color:#008800">"oshi.SystemInfoTest"</span><span style="color:#000000"> \ </span><span style="color:#">-</span><span style="color:#">Dexec</span><span style="color:#">.</span><span style="color:#000000">classpathScope</span><span style="color:#">=</span><span style="color:#008800">"test"</span></code></span></span>
一些设置可以在oshi.properties文件中配置,也可以使用GlobalConfig类进行操作。这应该在启动时完成,因为配置不是线程安全的,并且 OSHI 不保证在操作期间重新读取配置。
该oshi-demo
工件包括几个使用 OSHI 获取信息的概念验证示例,包括基本的 Swing GUI。
支持的功能
- 计算机系统和固件、基板
- 操作系统和版本/构建
- 物理(核心)和逻辑(超线程)CPU、处理器组、NUMA 节点
- 系统和每处理器负载、使用滴答计数器、中断、正常运行时间
- 进程正常运行时间、CPU、内存使用情况、用户/组、命令行参数、线程详细信息
- 使用/可用的物理和虚拟内存
- 挂载的文件系统(类型、可用空间和总空间、选项、读写)
- 磁盘驱动器(型号、序列号、大小、读取和写入)和分区
- 网络接口(IP、带宽输入/输出)、网络参数、TCP/UDP 统计
- 电池状态(容量百分比、剩余时间、用电量统计信息)
- USB 设备
- 连接的显示器(带有 EDID 信息)、显卡和声卡
- 某些硬件上的传感器(温度、风扇速度、电压)
OSHI 的示例输出
OSHI 直接通过 Java 方法为其每个接口提供输出。通过定期轮询动态信息(例如,每秒),用户可以计算和跟踪变化。
系统信息测试
您可以通过克隆项目并使用Maven构建它来查看更多示例并运行SystemInfoTest 并查看系统的完整输出。
oshi-演示
此外,该oshi-demo
模块包括一个OshiGui类,它实现了一个基本的 Swing GUI,为在 UI、监控或警报应用程序中使用 OSHI 的潜在可视化提供建议,如下所示。有关基于此方法的更高级 GUI,请参阅MooInfo 项目。
输出
有关操作系统和计算机系统硬件的一般信息:
通过测量时间间隔之间的滴答声(user、nice、system、idle、iowait 和 irq),可以计算出使用百分比。还提供了每个处理器的信息。
进程信息包括每个进程的 CPU 和内存可用。
内存和交换文件信息可用。
提供了系统电池的统计信息:
Power Sources: Name: InternalBattery-0, Device Name: bq20z451, RemainingCapacityPercent: 100.0%, Time Remaining: 5:42, Time Remaining Instant: 5:42, Power Usage Rate: -16045.216mW, Voltage: 12.694V, Amperage: -1264.0mA, Power OnLine: false, Charging: false, Discharging: true, Capacity Units: MAH, Current Capacity: 7213, Max Capacity: 7315, Design Capacity: 7336, Cycle Count: 6, Chemistry: LIon, Manufacture Date: 2019-06-11, Manufacturer: SMP, SerialNumber: DA2U3J65JAB, Temperature: 30.46°C
提供了每个显示器的 EDID。这可以用各种实用程序解析以获取详细信息。OSHI 提供所选数据的摘要。
Displays: Display 0: Manuf. ID=SAM, Product ID=2ad, Analog, Serial=HA19, ManufDate=3/2008, EDID v1.3 41 x 27 cm (16.1 x 10.6 in) Preferred Timing: Clock 106MHz, Active Pixels 3840x2880 Range Limits: Field Rate 56-75 Hz vertical, 30-81 Hz horizontal, Max clock: 140 MHz Monitor Name: SyncMaster Serial Number: H9FQ Display 1: Manuf. ID=SAM, Product ID=226, Analog, Serial=HA19, ManufDate=4/2007, EDID v1.3 41 x 26 cm (16.1 x 10.2 in) Preferred Timing: Clock 106MHz, Active Pixels 3840x2880 Range Limits: Field Rate 56-75 Hz vertical, 30-81 Hz horizontal, Max clock: 140 MHz Monitor Name: SyncMaster Serial Number: HMCP
显示磁盘和使用情况(读取、写入、传输时间),并且可以将分区映射到文件系统。
Disks: disk0: (model: SanDisk Ultra II 960GB - S/N: 0) size: 960.2 GB, reads: (23.0 GiB), writes: (11.1 GiB), xfer: ms |-- disk0s1: EFI (EFI System Partition) Maj:Min=1:1, size: 209.7 MB |-- disk0s2: Macintosh HD (Macintosh SSD) Maj:Min=1:2, size: 959.3 GB @ / disk1: (model: Disk Image - S/N: ) size: 960.0 GB, reads: 3678 (60.0 MiB), writes: 281 (8.6 MiB), xfer: ms |-- disk1s1: EFI (EFI System Partition) Maj:Min=1:4, size: 209.7 MB |-- disk1s2: Dropbox (disk image) Maj:Min=1:5, size: 959.7 GB @ /Volumes/Dropbox
传感器读数可用于某些硬件(请参阅API中的注释)。
Sensors: CPU Temperature: 69.8°C Fan Speeds:[4685, 4687] CPU Voltage: 3.9V
可以列出连接的 USB 设备:
USB Devices: AppleUSBEHCI |-- Root Hub Simulation Simulation (Apple Inc.) |-- IOUSBHostDevice |-- IR Receiver (Apple Computer, Inc.) |-- USB Receiver (Logitech) AppleUSBEHCI |-- Root Hub Simulation Simulation (Apple Inc.) |-- FaceTime HD Camera (Built-in) (Apple Inc.) [s/n: DJHB1V077FDH5HL0] |-- IOUSBHostDevice |-- Apple Internal Keyboard / Trackpad (Apple Inc.) |-- BRCM2070 Hub (Apple Inc.) |-- Bluetooth USB Host Controller (Apple Inc.) AppleUSBEHCI |-- Root Hub Simulation Simulation (Apple Inc.) |-- IOUSBHostDevice |-- Apple Thunderbolt Display (Apple Inc.) [s/n: 162C0C25] |-- Display Audio (Apple Inc.) [s/n: 162C0C25] |-- FaceTime HD Camera (Display) (Apple Inc.) [s/n: CCGCAN000TDJ7DFX] |-- USB2.0 Hub |-- ANT USBStick2 (Dynastream Innovations) [s/n: 051] |-- Fitbit Base Station (Fitbit Inc.)
https://github.com/oshi/oshihttps://github.com/oshi/oshi
到此这篇OSHI 是一个免费的基于 JNA(本机)的 Java 操作系统和硬件信息库的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/jjc/10350.html