当前位置:网站首页 > Java基础 > 正文

OSHI 是一个免费的基于 JNA(本机)的 Java 操作系统和硬件信息库

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 的应用程序和项目

用法

  1. 在您的类路径中包含 OSHI 及其依赖项。我们强烈建议您将 OSHI 作为依赖项添加到项目依赖项管理器(例如 Maven 或 Gradle)中。
  2. 创建一个新的实例SystemInfo
  3. 使用 getter fromSystemInfo访问硬件或操作系统组件,例如:
<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 操作系统和硬件信息库的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • Java打印输出:在线天堂2024-11-26 22:45:10
  • java最新版下载地址2024-11-26 22:45:10
  • (新)B站视频播放源地址获取及B站视频下载2024-11-26 22:45:10
  • 【Java基础知识 5】装箱和拆箱_【Java基础知识 5】装箱和拆箱2024-11-26 22:45:10
  • Java基础篇:数组_java数组基础知识2024-11-26 22:45:10
  • 葵司JAVA25_[PAT] 1012 The Best Rank (25 分)Java2024-11-26 22:45:10
  • windows下启动了多个java,杀死指定进程2024-11-26 22:45:10
  • java使用AOP切面获取请求日志并记录2024-11-26 22:45:10
  • 线上一次排错:JAVA程序占用CPU超过100%2024-11-26 22:45:10
  • idea创建java的maven聚合工程2024-11-26 22:45:10
  • 全屏图片