Download Latest Version Release 7.4.2 source code.zip (3.6 MB)
Email in envelope

Get an email when there's a new version of OSHI

Home / oshi-parent-7.4.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-07-08 2.6 kB
Release 7.4.0 source code.tar.gz 2026-07-08 2.5 MB
Release 7.4.0 source code.zip 2026-07-08 3.4 MB
Totals: 3 Items   6.0 MB 0
New Features
  • #3415: Add Display.getDisplayInfo() and a new DisplayInfo interface (exposing decoded attributes including isEdidSynthetic()), plus EDID-encoding methods in EdidUtil, allowing display attributes to be exposed without a raw EDID - @dbwiddis.
  • #3436: Detect the Apple Silicon built-in Retina display via IOMobileFramebuffer and synthesize a DisplayInfo from CoreGraphics and NSScreen properties (resolution, physical size, serial, model name) - @dbwiddis.
Bug Fixes and Improvements
  • #3424: Fix WrongMethodTypeException when freeing BSTR strings on the Windows FFM WMI path, caused by a void invokeExact in an expression lambda inferring an Object return - @dbwiddis.
  • #3425: Fix the Windows perf-counter process and thread maps occasionally mis-keying a real process/thread under ID 0, when PDH reports its "ID Process"/"ID Thread" sentinel for one that is starting or exiting - @dbwiddis.
  • #3432: Replace Logger#atLevel/setCause/isEnabledForLevel usage in ExceptionUtil, PerfDataUtil, and ForeignFunctions with level-switches to the classic SLF4J methods, so oshi no longer requires slf4j-api 2.x at runtime - @wolfs.
  • #3431: Declare the optional jlibrehardwaremonitor OSGi package imports as optional, so oshi-common resolves in OSGi environments that do not provide it - @MrEasy.
  • #3433: Restore optional JNA native access for NetBSD, falling back to the command-line implementation when the JNA native library is not installed - @dbwiddis.
  • #3437: Add ParseUtil.decodeIntOrDefault/decodeLongOrDefault and forbid direct use of Integer.decode, Long.decode, parseUnsignedInt, and parseUnsignedLong - @dbwiddis.
  • #3438: Deprecate Display.getEdid() in favor of Display.getDisplayInfo().getEdid(), consolidating display data access under DisplayInfo - @dbwiddis.

Full change log

Source: README.md, updated 2026-07-08