Informations systèmes (processuers, mémoire vive.)
Bonjour,
je suis à la recherche d'une API Java permettant de récupérer les informations:
- Mémoire vive
- Vitesse des CPUs
...
Bien sur vous allez me dire que le JDK permet de récupérer les valeurs normalement sauf que je veux une API plus puissante. Celle du JDK ne marche pas à 100% entre les OS...
merci.
Il y a comme qui dirait un couac
Bonjour,
Le langage Java est destiné à l'élaboration d'application en faisant abstraction du système d'exploitation hôte. Il est donc normal, et évident que ce dernier ne sache pas réaliser d'opération 'bas niveau' spécifique à chaque OS.
Si vous ne pouvez écrire vous même (dans un autre langage, généralement le C) un petit programme exécutable depuis la ligne de commande de l'os qui fabrique un fichier texte résumant le relevé des informations recherchées, logiquement, dans les OS on trouve des exécutables, ou des scripts qui permettent un sysinfo. Vous avez deux solutions :
La plus simple à mon sens est de repérer quels exécutables/scripts lancer pour tous les OS sur lesquels votre code sera amené à s'exécuter, puis de récupérer l'identité de l'OS hôte dans les properties de la JVM afin de déterminer lequel lancer. Généralement, ces exécutables produisent un fichier texte. Votre code devra simplement attendre que ce fichier texte soit produit pour ensuite l'exploiter. Pour lancer le 'récupérateur d'information' depuis votre code, un simple Runtime.exec fera l'affaire.
La seconde solution, c'est d'utiliser JNA. Une API java qui permet d'invoquer les fonctions natives des OS hôtes. Mais dans ce cas, il va vous falloir connaître toutes les fonctions (dlls pour windows, librairies so pour linux, etc...) a invoquer pour découvrir les infos que vous recherchez.