Ceci est un mémo sur une bibliothèque appelée OSHI qui peut acquérir des informations système avec Java.
Il existe une autre bibliothèque pour obtenir des informations sur le système, mais l'OSHI est meilleure dans les points suivants.
--Sigar nécessite un binaire natif tel que DLL, mais pas OSHI. --Sigar ne peut pas être utilisé avec Java 9 ou version ultérieure (JVM plante!) Pour la version Windows, mais OSHI peut être utilisé sans problème.
build.gradle
dependencies {
compile group: 'com.github.oshi', name: 'oshi-core', version: '3.13.0'
}
Je présenterai un extrait approprié de l'information qui peut être obtenue avec l'OSHI. Le commentaire de droite est le résultat de sortie dans mon environnement.
var si = new SystemInfo();
var os = si.getOperatingSystem();
//Type de système d'exploitation
System.out.println(os.getFamily()); // macOS
//version
System.out.println(os.getVersion().getVersion()); // 10.14.2
//Fabricant
System.out.println(os.getManufacturer()); // Apple
//Combien de bits
System.out.println(os.getBitness()); // 64
//Nom de code
System.out.println(os.getVersion().getCodeName()); // Mojave
var si = new SystemInfo();
var hard = si.getHardware();
var cpu = hard.getProcessor();
//Nombre de processus physiques
System.out.println(cpu.getPhysicalProcessorCount()); // 4
//Nombre de processus logiques
System.out.println(cpu.getLogicalProcessorCount()); // 8
//Nom
System.out.println(cpu.getName()); // Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
//identifiant
System.out.println(cpu.getIdentifier()); // Intel64 Family 6 Model 70 Stepping 1
//Fournisseur ID
System.out.println(cpu.getVendor()); // GenuineIntel
//Nombre de changements de contexte
System.out.println(cpu.getContextSwitches()); // 130336
//Moyenne routière
System.out.println(cpu.getSystemLoadAverage()); // 2.65576171875
var si = new SystemInfo();
var hard = si.getHardware();
var memory = hard.getMemory();
//Capacité mémoire totale
System.out.println(memory.getTotal()); // 17179869184
//Capacité totale de swap
System.out.println(memory.getSwapTotal()); // 1073741824
//Taille de la page
System.out.println(memory.getPageSize()); // 4096
//Capacité utilisable
System.out.println(memory.getAvailable()); // 5858844672
var si = new SystemInfo();
var hard = si.getHardware();
var usbs = hard.getUsbDevices(false);
for(var usb : usbs) {
//Il y a plusieurs choses, donc je vais me concentrer sur la souris pour le moment
if(usb.getName().contains("Mouse")) {
//Nom
System.out.println(usb.getName()); // USB Laser Mouse
//Fabricant
System.out.println(usb.getVendor()); // Logitech
}
}
var si = new SystemInfo();
var hard = si.getHardware();
var sensor = hard.getSensors();
//Température du CPU
System.out.println(sensor.getCpuTemperature()); // 48.75
//Tension du processeur
System.out.println(sensor.getCpuVoltage()); // 3.63
//Vitesse du ventilateur du processeur
System.out.println(Arrays.toString(sensor.getFanSpeeds())); // [2159, 2000]
Je ne peux pas tous les présenter car il y en a tellement, mais en plus de ce qui précède, vous pouvez obtenir diverses informations telles que des informations sur le système de fichiers, des informations sur le disque, des informations de processus, des informations sur la carte son, des informations sur l'alimentation, etc.