Dies ist ein Memo über eine Bibliothek namens OSHI, die Systeminformationen mit Java erfassen kann.
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.
build.gradle
dependencies {
compile group: 'com.github.oshi', name: 'oshi-core', version: '3.13.0'
}
Ich werde einen geeigneten Auszug der Informationen vorstellen, die mit OSHI erhältlich sind. Der Kommentar rechts ist das Ausgabeergebnis in meiner Umgebung.
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
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
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
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
}
}
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]
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.
Recommended Posts