L'exemple de cet article indique la façon dont Java obtient des informations de base du serveur. Partagez-le pour tout le monde pour votre référence. Les détails sont les suivants:
Utilisez un package JAR tiers: (Hyperic-HQ Site Web Officiel: http://www.hyperic.com) pour obtenir des données sur l'état du serveur obtenant via Sigar.jar des produits Hyperic-HQ. Le package Sigar.jar doit appeler l'API du système d'exploitation via des méthodes locales pour obtenir des données liées au système. Sigar.jar sous Windows Système d'exploitation repose sur Sigar-Amd64-winnt.dll ou Sigar-X86-Winnt.dll, tandis que le système d'exploitation Linux repose sur Libsigar-Amd64-Linux.So ou Libsigar-X86-Linux.So
Importation java.net.inetAddress; . .SigareXception; {return size.getcpuinfolist (). Nouveau signe (); Fos. + Info.getmhz ()); .println ("Model =" + info.getModel ()); }} Catch (sigarexception e) {e.printStackTrace ();} // c) Utilisation de l'utilisateur du processe size = new Sign (); = null; try {cpulist = signcpuperclist ();} catch (sigarexception e) {e.printstackTrace (); i]);}} private void printcpuperc (cpuperc cpu) {System.out.println ("utilisateur:" + cpuperc.format (cpu.getUser ()); "SYS:" + cpuperc.format (cpu.getsys ()); println ("Nice:" + cpuperc.format (cpu.getNice ()); System.out.println ("Total:" + cpuperc.format (cpu.getcombined ())); size = new Sign (); "); // Le système d'utilisation de mémoire actuel.out.println (" used = "+ mem.getUsed () / 1024l +" k Userd "); // la mémoire actuelle restant System.out.println (" "free = "+ Mem.getFree () / 1024l +" k free "); // b) Système Fichier Swap Swap Swap = Sigar.getSwap (); // La quantité totale de System.out.println (" Total = " + swap.getTotal () /) / 1024l + "k av"); / La quantité restante de la zone d'échange actuelle System.out.println ("free =" + swap.getFree () / 1024l + "k free"); : Public string getplatformName () {string hostname = "" "" "; try {hostname = indadres.getLocalHost (). (Exception exc) {sigar sigar = new size (); try {hostname = size.getnetinfo (). Gethostname ();} Catch (sigarexception e) {hostname = "localhost.unknown";} enfin {sigar.close ();}} renvoie un nom d'hôte;} // b) prendre les informations du système d'exploitation actuel. () = "+ Os.getarch ()); system.out.println (" os.getcpuendian () = "+ os.getcpuendian ()); // system.out.println (" os.getDatamodel () = " + Os.getDatamodel ()); / Le type de système d'exploitation System.out.println ("os.getName () =" + os.getName ()); = "+ os.getPatchLevel ()); // // le vendeur System.out.println (" Os.getVendor () = "+ os.getVendor ()); //" os.getVendorCodeName () = "+ os.getVendorCodeName ()); // Le nom du système d'exploitation System.out.println (" os.getVendorName ( ) = "+ Os.getVendorName ()); // em .out.println (" os.getVendorVersion () = "+ os.getVendorVersion ()); // le numéro de version System.out.println (" OS.getversion () = "+ Os.getVersion ());} // c) Prenez les informations de l'utilisateur dans la table de processus système actuelle.! = Null && who.length> 0) {for (int i = 0; i <ho. Longueur; .sigar.who _who = who [i]; ); ));}}}} Catch (SigareXception e) {e.printStackTrace ();} // 4. Informations sur les ressources (principalement disque dur) / / a) Prenez la partition existante et les détails du disque dur (via Sigar.getFileSystemListListlist () Pour obtenir l'objet de liste de fichiers, puis le compiler): public void testFileSystemFo () lance l'exception {sigar sigar = new sigar (); ("user.home"); ~~~~~~~ "+ i +" ~~~~~~~~~~~ "); le nom du système System.out.println (" fs.getDevName () = "+ fs.getDevName ( )); getFlags ()); disque dur local, lecteur optique, système de fichiers réseau et autres systèmes.out.println ("fs.getTyPename () =" + fs.getTyPename ()); ) = "+ fs.getType ()); irName ());} catch (SigareXception e) {if (fs.getType () == 2) Throw E; continue;} switch (fs.getType ()) {case 0: // type_unknown: Break inconnu; () + "kb"); = "+ usage.getavail () +" kb "); // Le système de fichiers a déjà utilisé System.out. println (" userd = "+ usage.getUsed () +" kb "); double usercent = usage.getUserEntcent () * 100d; 5: // type_cdrom: cas 6: // type_swap:} systemm .out.println ("diskreads =" + usage.getDiskreams ()); Informations // a) actuel du nom de domaine formel de la chaîne publique de machine getfqdn () {sigar sigar = null; size (); return size.getfqdn ();} catch (sigarexception ex) {return null;} enfin {signe.close ();} // b) obtenir l'adresse IP de la machine actuelle. Adresse = INDADRESS. (! Netflags.loopback_address.equals (adresse) {return adress;} catch (inconnuhostException e) {// hostname pas dans dns ou / etc / hosts} sigar igar = new size (); try {adresse = size.getnetinterfaceConfig () .getAddress ();} catch (sigarexception e) {adresse = netflags.loopback_address;} enfin {sigar.close ();} return adresse;} // MAC ADRESS Public String getmac () {{) sigar size = null; {size = new size (); string [] ifaces = size.getNetTinterfaceList (); ; * * S'il y a plusieurs cartes réseau, y compris les cartes réseau, y compris les machines virtuelles, seule l'adresse MAC de la première carte réseau est prise par défaut. est un tableau ou une collection *, par plusieurs adresses MAC obtenues dans la boucle FOR. * / hwaddr = cfg.gethwadddr ();} return hwaddr! // D) obtenir des informations telles que le trafic réseau et d'autres informations. ; 1l) <= 0l) {print ("! Iff_up ... sautant");} essayez {netinterfacestat ifStat = sigar.getnetnetNetInterfacestat (nom); = "+ ifstat.gettxpackets (); // le nombre total de wraps envoyés (" rxbytes = "+ ifstat.getrxbytes ()); // le nombre total d'octets reçus (" txbytes = "+ ifStat.getTxBytes ()) ; "rxdropped =" + ifstat.getrxdropped ()); .getMessage ());}}} void print (String msg) {System.out.println (msg);} // e) etinfe () {sigar size = null; ] ifaces = sigar.gettnetnetinterfaceList (); ()) || (cfg.getflags () & netflags.iff_loopback)! + cfg.getAddress ()); ) = "+ cfg.gethwaddr ()); // la carte réseau MAC Address System.out.println (" cfg.getnetmask () = "+ cfg .getNetMask ()); // le Sous-Net Mask System.out.println ("cfg.getDescript () =" + cfg.getDescripting ()); .out.println ("cfg.getDestination () =" + cfg.getDestination ()); "Cfg.getMetric () =" + cfg.getMetric ());); } {System.out.println ("Erreur lors de la création de Guid" + E);} Enfin {if (size! = Null) size.close ();}}}On espère que cet article est utile à la conception du programme Java de tous.