
Envoyé par
pursang
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.
Partager