OSHI 是免费基础 JNA(本机)的 Java 操作系统和硬件信息库。它不需要安装任何额外的本地库,旨在提供操作系统版本、过程、内存和 CPU 利用率、磁盘及分区、设备、传感器等。
Windows ? Linux ? macOS ? Unix(AIX、FreeBSD、OpenBSD、Solaris)
稳定版
当前开发 (SNAPSHOT) 下载
- 包含在您的类路径中 OSHI 及其依赖项。我们强烈建议您将 OSHI 作为依赖项添加到项目依赖项管理器(例如 Maven 或 Gradle)中。
- 创建新的例子
SystemInfo
- 使用 getter from
SystemInfo
访问硬件或操作系统组件,如:
<span style="color:#333333"><span style="background-color:#f5f5f5"><code class="language-java"><span style="color:#660066">SystemInfo</span><span style="color:#000000"> si </span><span style="color:#666600">=</span> <span style="color:#000088">new</span> <span style="color:#660066">SystemInfo</span><span style="color:#666600">();</span> <span style="color:#660066">HardwareAbstractionLayer</span><span style="color:#000000"> hal </span><span style="color:#666600">=</span><span style="color:#000000"> si</span><span style="color:#666600">.</span><span style="color:#000000">getHardware</span><span style="color:#666600">();</span> <span style="color:#660066">CentralProcessor</span><span style="color:#000000"> cpu </span><span style="color:#666600">=</span><span style="color:#000000"> hal</span><span style="color:#666600">.</span><span style="color:#000000">getProcessor</span><span style="color:#666600">();</span></code></span></span>
请参见相关示例SystemInfoTest.java。检查机器的示例输出:
<span style="color:#333333"><span style="background-color:#f5f5f5"><code class="language-sh"><span style="color:#000000">git clone https</span><span style="color:#666600">://</span><span style="color:#000000">github</span><span style="color:#666600">.</span><span style="color:#000000">com</span><span style="color:#666600">/</span><span style="color:#000000">oshi</span><span style="color:#666600">/</span><spn style="color:#000000">oshi</span><span style="color:#666600">.</span><span style="color:#000000">git </span><span style="color:#666600">&&</span><span style="color:#000000"> cd oshi
</span><span style="color:#666600">./</span><span style="color:#000000">mvnw test</span><span style="color:#666600">-</span><span style="color:#000000">compile </span><span style="color:#666600">-</span><span style="color:#000000">pl oshi</span><span style="color:#666600">-</span><span style="color:#000000">core exec</span><span style="color:#666600">:</span><span style="color:#000000">java \
</span><span style="color:#666600">-</span><span style="color:#660066">Dexec</span><span style="color:#666600">.</span><span style="color:#000000">mainClass</span><span style="color:#666600">=</span><span style="color:#008800">"oshi.SystemInfoTest"</span><span style="color:#000000"> \
</span><span style="color:#666600">-</span><span style="color:#660066">Dexec</span><span style="color:#666600">.</span><span style="color:#000000">classpathScope</span><span style="color:#666600">=</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 直接通过 Java 方法为其每个接口提供输出。通过定期轮询动态信息(例如,每秒),用户可以计算和跟踪变化。
系统信息测试
您可以通过克隆项目并使用Maven构建它来查看更多示例并运行SystemInfoTest 并查看系统的完整输出。
此外,该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: D869243A2U3J65JAB, 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: H9FQ345476
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: HMCP431880
显示磁盘和使用情况(读取、写入、传输时间),并且可以将分区映射到文件系统。
Disks:
disk0: (model: SanDisk Ultra II 960GB - S/N: 161008800550) size: 960.2 GB, reads: 1053132 (23.0 GiB), writes: 243792 (11.1 GiB), xfer: 73424854 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: 213627 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
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