Bibliothek "OSHI" zum Erfassen von Systeminformationen mit Java

Überblick

Dies ist ein Memo über eine Bibliothek namens OSHI, die Systeminformationen mit Java erfassen kann.

Unterschied zu Sigar

Es gibt eine andere Bibliothek, um Systeminformationen abzurufen, aber OSHI ist in den folgenden Punkten besser.

--Sigar benötigt eine native Binärdatei wie DLL, OSHI jedoch nicht. --Sigar kann nicht mit Java 9 oder höher verwendet werden (JVM stürzt ab!) Für die Windows-Version, aber OSHI kann ohne Probleme verwendet werden.

Installation

build.gradle


dependencies {
    compile group: 'com.github.oshi', name: 'oshi-core', version: '3.13.0'
}

Versuchen Sie es mit

Ich werde einen geeigneten Auszug der Informationen vorstellen, die mit OSHI erhältlich sind. Der Kommentar rechts ist das Ausgabeergebnis in meiner Umgebung.

Betriebssysteminformationen

var si = new SystemInfo();
var os = si.getOperatingSystem();
//Betriebssystemtyp
System.out.println(os.getFamily());  // macOS
//Ausführung
System.out.println(os.getVersion().getVersion());  // 10.14.2
//Hersteller
System.out.println(os.getManufacturer());  // Apple
//Wie viele Bits
System.out.println(os.getBitness());  // 64
//Code Name
System.out.println(os.getVersion().getCodeName());  // Mojave

CPU-Informationen

var si = new SystemInfo();
var hard = si.getHardware();
var cpu = hard.getProcessor();
//Anzahl der physikalischen Prozesse
System.out.println(cpu.getPhysicalProcessorCount());  // 4
//Anzahl der logischen Prozesse
System.out.println(cpu.getLogicalProcessorCount());  // 8
//Name
System.out.println(cpu.getName());  // Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
//Kennung
System.out.println(cpu.getIdentifier());  // Intel64 Family 6 Model 70 Stepping 1
//Hersteller-ID
System.out.println(cpu.getVendor());  // GenuineIntel
//Anzahl der Kontextwechsel
System.out.println(cpu.getContextSwitches());  // 130336
//Straßendurchschnitt
System.out.println(cpu.getSystemLoadAverage());  // 2.65576171875

Speicherinformationen

var si = new SystemInfo();
var hard = si.getHardware();
var memory = hard.getMemory();
//Gesamtspeicherkapazität
System.out.println(memory.getTotal());  // 17179869184
//Gesamte Swap-Kapazität
System.out.println(memory.getSwapTotal());  // 1073741824
//Seitengröße
System.out.println(memory.getPageSize());  // 4096
//Nutzbare Kapazität
System.out.println(memory.getAvailable());  // 5858844672

USB Gerät

var si = new SystemInfo();
var hard = si.getHardware();
var usbs = hard.getUsbDevices(false);
for(var usb : usbs) {
    //Da es verschiedene Dinge gibt, werde ich mich vorerst auf die Maus konzentrieren
    if(usb.getName().contains("Mouse")) {
        //Name
        System.out.println(usb.getName());  // USB Laser Mouse
        //Hersteller
        System.out.println(usb.getVendor());  // Logitech
    }
}

Sensor

var si = new SystemInfo();
var hard = si.getHardware();
var sensor = hard.getSensors();
//CPU-Temperatur
System.out.println(sensor.getCpuTemperature());  // 48.75
//CPU-Spannung
System.out.println(sensor.getCpuVoltage());  // 3.63
//CPU-Lüftergeschwindigkeit
System.out.println(Arrays.toString(sensor.getFanSpeeds()));  // [2159, 2000]

Andere

Ich kann nicht alle vorstellen, weil es so viele gibt, aber zusätzlich zu den oben genannten können Sie verschiedene Informationen wie Dateisysteminformationen, Festplatteninformationen, Prozessinformationen, Soundkarteninformationen, Informationen zur Stromversorgung usw. erhalten.

Referenzlink

Recommended Posts

Bibliothek "OSHI" zum Erfassen von Systeminformationen mit Java
Holen Sie sich EXIF-Informationen in Java
So erhalten Sie das Datum mit Java
So erhalten Sie eine Klasse von Element in Java
So erhalten Sie Informationen zu zugeordneten Tabellen in vielen-zu-vielen-Tabellen
Quelle zum Abrufen der Umleitungsquell-URL in Java
[Java] KClass in Java herunterladen [Kotlin]
So erhalten Sie den Namen einer Klasse / Methode, die in Java ausgeführt wird
Holen Sie sich ganz einfach Ganzzahlen aus den Systemeigenschaften in Java
Verwendung von HttpClient (Get) von Java
Multithreaded passend zur [Java] Vorlage
So erhalten Sie Parameter in Spark
Protokollausgabe in Datei in Java
Willkommen im Sumpf der Java-Bibliotheken! !!
Wie verwende ich Klassen in Java?
So benennen Sie Variablen in Java
Versuchen Sie, Yuma in Java zu implementieren
Bleiben Sie in einem Java Primer stecken
So verketten Sie Zeichenfolgen mit Java
[Java] Abrufen von Datumsinformationen 10 Tage später in Millisekunden in der Datumsklasse
Untersuchen Sie die Systeminformationen der AWS Lambda-Betriebsumgebung in Java
So ermitteln Sie die Länge einer Audiodatei mit Java
So implementieren Sie die Datumsberechnung in Java
So implementieren Sie den Kalman-Filter mit Java
Mehrsprachige Unterstützung für Java Verwendung des Gebietsschemas
Beispielcode zum Abrufen der wichtigsten JDBC-Typwerte in der Java + H2-Datenbank
Java-Referenz zum Verständnis in der Abbildung
Versuchen Sie, n-ary Addition in Java zu implementieren
Abrufen von Anruferinformationen aus dem Stack-Trace (Java)
Java Artery - Einfach zu verwendende Unit-Test-Bibliothek
So führen Sie eine Basiskonvertierung in Java durch
[Java] Verwenden Sie kryptografische Technologie mit Standardbibliotheken
Ändern Sie die Liste <Optional <T >> in Java in Optional <Liste <T >>
So beheben Sie das Systemdatum in JUnit
[Java] So erhalten Sie das aktuelle Verzeichnis
[Java] Tag-Informationen aus Musikdateien abrufen
Konvertieren Sie SVG-Dateien in Java in PNG-Dateien
So erzwingen Sie Codierungskonventionen in Java
Einbetten von Janus Graph in Java
[Rails] So erhalten Sie die aktuell mit devise angemeldeten Benutzerinformationen
[Rails] Verwenden Sie devise, um Informationen zum aktuell angemeldeten Benutzer abzurufen
Unerfahrene Lernmethode, um Java Silver 11 zu erhalten
Ich möchte die IP-Adresse erhalten, wenn ich mit Java eine Verbindung zu Wi-Fi herstelle
Abrufen des Verlaufs vom Zabbix-Server in Java
So ermitteln Sie den absoluten Pfad eines in Java ausgeführten Verzeichnisses
Fügen Sie Word-Dokumenten in Java Fußnoten hinzu
[Java Bronze] 5 Probleme zu beachten
So veröffentlichen Sie eine Bibliothek in jCenter
Beispiel zum Entpacken einer gz-Datei in Java
Von Java nach C und von C nach Java in Android Studio
Fügen Sie dem Cookie in Java das SameSite-Attribut hinzu
So erstellen Sie Ihre eigene Anmerkung in Java und erhalten den Wert
So erhalten Sie eine Liste mit Excel-Blattnamen in Java (POI vs SAX)
Versuchen Sie, mit Scala mithilfe der Standardbibliothek von Java Text zu einem Bild hinzuzufügen
Beispielcode zum Abrufen der wichtigsten SQL-Typwerte in Java + MySQL 8.0
Erhalten Sie Kontextinformationen wie HttpServletRequest in Jersey
So erhalten Sie Keycloak-Anmeldeinformationen in der Interceptor-Klasse
Zwei Möglichkeiten, einen Thread in Java + @ zu starten
Erstellen Sie eine CSR mit erweiterten Informationen in Java