OSHI ist eine kostenlose JNA-basierte (native) Betriebssystem- und Hardware-Informationsbibliothek für Java. Es erfordert keine Installation zusätzlicher nativer Bibliotheken und zielt darauf ab, eine plattformübergreifende Implementierung zum Abrufen von Systeminformationen wie Betriebssystemversion, Prozessen, Speicher- und CPU-Auslastung, Festplatten und Partitionen, Geräten, Sensoren usw. bereitzustellen.
- Unterstützte Plattformen
- Downloads und Abhängigkeitsmanagement
- Dokumentation
- Verwendung
- Unterstützte Funktionen
- Unterstützung
- OSHI für Unternehmen
- Sicherheitskontaktinformationen
- Status des kontinuierlichen Integrationstests
- Wie kann ich helfen?
- Beitrag zu OSHI
- Danksagungen
- Lizenz
Unterstützte Plattformen
- Windows
- macOS
- Linux (Android)
- UNIX (AIX, FreeBSD, OpenBSD, Solaris)
Dokumentation
- API (Javadocs)
- FAQ
- Änderungsprotokoll
- Leistungsüberlegungen
- Wichtige Änderungen an der Version
- Beispielausgabe
- Anwendungen und Projekte mit OSHI
Downloads und Abhängigkeitsmanagement
Stabile Release-Version
- JDK8: oshi-core-6.6.5
- JPMS: oshi-core-java11-6.6.5
- JDK6: oshi-core-3.14.0
Downloads der aktuellen Entwicklung (SNAPSHOT).
- JDK8: oshi-core-6.6.6-SNAPSHOT
- JPMS: oshi-core-java11-6.6.6-SNAPSHOT
Verwendung
- Beziehen Sie OSHI und seine Abhängigkeiten in Ihren Klassenpfad ein.
- Wir empfehlen Ihnen dringend
oshi-core
als Abhängigkeit zu Ihrem Projektabhängigkeitsmanager wie Maven oder Gradle hinzuzufügen. - Für Android müssen Sie das AAR-Artefakt für JNA hinzufügen und die transitive (JAR) Abhängigkeit von OSHI ausschließen.
- Lesen Sie die FAQ, wenn Sie auf
NoClassDefFoundError
oder NoSuchMethodError
-Probleme stoßen.
- Erstellen Sie eine neue Instanz von
SystemInfo
- Verwenden Sie die Getter von
SystemInfo
, um auf Hardware- oder Betriebssystemkomponenten zuzugreifen, wie zum Beispiel:
SystemInfo si = new SystemInfo ();
HardwareAbstractionLayer hal = si . getHardware ();
CentralProcessor cpu = hal . getProcessor ();
Beispiele finden Sie unter SystemInfoTest.java. So sehen Sie sich die Beispielausgabe für Ihre Maschine an:
git clone https://github.com/oshi/oshi.git && cd oshi
./mvnw test-compile -pl oshi-core exec:java
-Dexec.mainClass= " oshi.SystemInfoTest "
-Dexec.classpathScope= " test "
Einige Einstellungen können in der Datei oshi.properties
konfiguriert werden, die auch mithilfe der GlobalConfig
-Klasse manipuliert werden kann. Dies sollte beim Start erfolgen, da die Konfiguration nicht threadsicher ist und OSHI nicht garantiert, dass die Konfiguration während des Betriebs erneut gelesen wird.
Das oshi-demo
Artefakt enthält mehrere Proof-of-Concept-Beispiele für die Verwendung von OSHI zum Abrufen von Informationen, einschließlich einer grundlegenden Swing-GUI.
Unterstützte Funktionen
- Computersystem und Firmware, Baseboard
- Betriebssystem und Version/Build
- Physische (Kern) und logische (Hyperthread-)CPUs, Prozessorgruppen, NUMA-Knoten
- System- und Prozessorlast, Nutzungs-Tick-Zähler, Interrupts, Betriebszeit
- Prozessverfügbarkeit, CPU, Speichernutzung, Benutzer/Gruppe, Befehlszeilenargumente, Threaddetails
- Physischer und virtueller Speicher verwendet/verfügbar
- Gemountete Dateisysteme (Typ, nutzbarer und Gesamtspeicherplatz, Optionen, Lese- und Schreibvorgänge)
- Festplatten (Modell, Seriennummer, Größe, Lese- und Schreibvorgänge) und Partitionen
- Netzwerkschnittstellen (IPs, Bandbreite ein/aus), Netzwerkparameter, TCP/UDP-Statistiken
- Batteriestatus (% Kapazität, verbleibende Zeit, Stromverbrauchsstatistiken)
- USB-Geräte
- Angeschlossene Displays (mit EDID-Informationen), Grafik- und Audiokarten
- Sensoren (Temperatur, Lüftergeschwindigkeit, Spannung) auf mancher Hardware
Unterstützung
- Für Fehlerberichte, Funktionsanfragen oder allgemeine Fragen zu den längerfristigen Plänen von OSHI erstellen Sie bitte ein Problem.
- Wenn Sie Hilfe bei der Integration von OSHI in Ihr eigenes Projekt oder bei der Codeüberprüfung Ihrer PRs durch den Betreuer benötigen, taggen Sie
@dbwiddis
in Issues oder Pull Requests auf Ihrer Projektseite. - Für „How to“-Fragen bezüglich der Verwendung der API konsultieren Sie Beispiele im
oshi-demo
-Projekt, erstellen Sie ein Problem oder suchen Sie auf Stack Overflow mit dem oshi
-Tag und stellen Sie eine neue Frage, wenn diese noch nicht beantwortet wurde. - Um dem Hauptbetreuer von OSHI zu danken, können Sie ihn sponsern oder ihm einen Kaffee spendieren.
OSHI für Unternehmen
Verfügbar als Teil des Tidelift-Abonnements
Die Betreuer von OSHI und Tausenden anderer Pakete arbeiten mit Tidelift zusammen, um kommerziellen Support und Wartung für die Open-Source-Abhängigkeiten bereitzustellen, die Sie zum Erstellen Ihrer Anwendungen verwenden. Sparen Sie Zeit, reduzieren Sie Risiken und verbessern Sie den Zustand des Codes, während Sie gleichzeitig die Betreuer der genauen Abhängigkeiten bezahlen, die Sie verwenden. Erfahren Sie mehr.
Sicherheitskontaktinformationen
Um eine Sicherheitslücke zu melden, wenden Sie sich bitte an den Sicherheitskontakt von Tidelift. Tidelift wird die Behebung und Offenlegung koordinieren.
Status des kontinuierlichen Integrationstests
Wie kann ich helfen?
OSHI entstand als plattformunabhängige Bibliothek, die keine zusätzliche Software erforderte und über eine Lizenz verfügte, die sowohl mit Open-Source- als auch mit kommerziellen Produkten kompatibel war. Wir haben einen starken Funktionskern für die wichtigsten Betriebssysteme entwickelt, würden uns aber über Ihre Mithilfe freuen:
- Testen! Unsere CI-Tests sind auf einige wenige Plattformen beschränkt. Laden Sie das Programm herunter, testen Sie es auf verschiedenen Betriebssystemen/Versionen und Hardware und helfen Sie dabei, Lücken zu identifizieren, die bei unserer begrenzten Entwicklung und unseren Tests möglicherweise übersehen wurden. Zu den spezifischen Testanforderungen mit hoher Priorität gehören:
- Windows-Systeme mit über 64 logischen Prozessoren
- Raspberry Pi
- Weniger verbreitete Linux-Distributionen
- Mitwirkender Code. Sehen Sie etwas, das nicht richtig funktioniert oder besser funktionieren könnte? Helfen Sie uns, das Problem zu beheben! Neue Mitwirkende sind willkommen.
- Dokumentation der Umsetzung. Unser Wiki ist spärlich ausgestattet und das
oshi-demo
Artefakt ist ein Ort, an dem Ideen für den Machbarkeitsnachweis gehostet werden können. Möchten Sie neuen Benutzern helfen, in Ihre Fußstapfen zu treten? - Vorschläge für neue Funktionen. Brauchen Sie, dass OSHI etwas tut, was es derzeit nicht tut? Lassen Sie es uns wissen.
Beitrag zu OSHI
- So können Sie einen Beitrag leisten
- So veröffentlichen Sie
Danksagungen
Vielen Dank an die folgenden Unternehmen für die kostenlose Unterstützung von Open-Source-Projekten, einschließlich OSHI:
- SonarCloud für eine Reihe von Tools zur Codequalität
- GitHub Actions, AppVeyor und Cirrus CI für kontinuierliche Integrationstests
- Der jProfile Java Profiler dient zur Beseitigung von CPU-Engpässen
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert.