Bibliothèque "OSHI" pour acquérir des informations système avec Java

Aperçu

Ceci est un mémo sur une bibliothèque appelée OSHI qui peut acquérir des informations système avec Java.

Différence de Sigar

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.

Installation

build.gradle


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

Essayez d'utiliser

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.

Informations sur le système d'exploitation

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

Informations sur le processeur

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

Informations sur la mémoire

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

périphérique USB

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
    }
}

capteur

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]

Autre

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.

Lien de référence

Recommended Posts

Bibliothèque "OSHI" pour acquérir des informations système avec Java
Obtenir des informations EXIF en Java
Comment obtenir la date avec Java
Comment obtenir une classe depuis Element en Java
Comment obtenir des informations sur les tables associées dans les tables plusieurs-à-plusieurs
Source utilisée pour obtenir l'URL de la source de redirection en Java
[Java] Obtenir KClass en Java [Kotlin]
Comment obtenir le nom d'une classe / méthode exécutée en Java
Obtenez facilement des entiers à partir des propriétés système en Java
Comment utiliser HttpClient de Java (Get)
Multithread pour s'adapter au modèle [Java]
Comment obtenir des paramètres dans Spark
Enregistrer la sortie dans un fichier en Java
Bienvenue dans le marais des bibliothèques Java! !!
Comment utiliser les classes en Java?
Comment nommer des variables en Java
Essayez d'implémenter Yuma en Java
Restez coincé dans un Java Primer
Comment concaténer des chaînes avec Java
[Java] Obtenez des informations sur la date 10 jours plus tard en utilisant la milliseconde dans la classe Date
Examiner les informations système de l'environnement d'exploitation AWS Lambda en Java
Comment obtenir la longueur d'un fichier audio avec Java
Comment implémenter le calcul de la date en Java
Comment implémenter le filtre de Kalman par Java
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
Exemple de code pour obtenir les valeurs de type JDBC clés dans la base de données Java + H2
Référence Java à comprendre dans la figure
Essayez d'implémenter l'ajout n-aire en Java
Obtenir des informations sur l'appelant à partir de la trace de la pile (Java)
Bibliothèque de tests unitaires Java Artery-Easy to use
Comment faire une conversion de base en Java
[Java] Utiliser la technologie cryptographique avec les bibliothèques standard
Remplacez List <Optional <T >> par Optional <List <T >> en Java
Comment fixer la date système dans JUnit
[Java] Comment obtenir le répertoire actuel
[Java] Obtenir des informations sur les balises à partir de fichiers musicaux
Convertir des fichiers SVG en fichiers PNG en Java
Comment appliquer les conventions de codage en Java
Comment intégrer Janus Graph dans Java
[Rails] Comment obtenir les informations sur l'utilisateur actuellement connecté avec devise
[Rails] Utilisez le dispositif pour obtenir des informations sur l'utilisateur actuellement connecté
Méthode d'apprentissage inexpérimentée pour obtenir Java Silver 11
Je souhaite obtenir l'adresse IP lors de la connexion au Wi-Fi avec Java
Obtenir l'historique du serveur Zabbix en Java
Comment obtenir le chemin absolu d'un répertoire s'exécutant en Java
Ajouter des notes de bas de page aux documents Word en Java
[Java Bronze] 5 problèmes à garder à l'esprit
Comment publier une bibliothèque dans jCenter
Exemple pour décompresser le fichier gz en Java
De Java à C et de C à Java dans Android Studio
Ajouter l'attribut SameSite au cookie en Java
Comment créer votre propre annotation en Java et obtenir la valeur
Comment obtenir une liste de noms de feuilles Excel en Java (POI vs SAX)
Essayez d'ajouter du texte à une image avec Scala en utilisant la bibliothèque standard de Java
Exemple de code pour obtenir les valeurs de type SQL clés dans Java + MySQL 8.0
Obtenez des informations contextuelles telles que HttpServletRequest dans Jersey
Comment obtenir les informations d'identification Keycloak dans la classe d'intercepteur
Deux façons de démarrer un thread en Java + @
Créer un CSR avec des informations étendues en Java