Das Beispiel dieses Artikels gibt an, wie Java grundlegende Informationen über den Server erhält. Teilen Sie es für alle für Ihre Referenz. Die Einzelheiten sind wie folgt:
Verwenden Sie ein JAR-Paket von Drittanbietern: (offizielle Website von Hyperic-HQ: http://www.hyperic.com), um die Server-State-Daten zu erhalten, die über Sigar.jar von Hyperic-Hq-Produkten erhalten. Das Sigar.jar -Paket soll die Betriebssystem -API über lokale Methoden aufrufen, um systembezogene Daten zu erhalten. Sigar.jar unter Windows-Betriebssystem basiert auf sigar-amd64-winnnt.dll oder sigar-x86-winnnt.dll, während das Linux-Betriebssystem auf libsigar-amd64-linux.so oder libsigar-x86-linux.so beruht
Java.Net.NeTadDress; Hyperic.sig.mem; .Sigarexception; {return size.getCpuInfolist (). neuer Zeichen (); + Info.getMHz ()); .println ("modell =" + info.getModel ()); }} Catch (sigarexception e) {e.printstacktrace ();} // c) Benutzerverwendung von CPU, Systemverwendungsüberschuss, Gesamtbetragsmenge, Gesamtnutzungsbeschäftigung usw. (Einheit: 100%) Public void testCpuperC () {Größe size = new Signal (); = NULL; i]);}} private void printCpuperc (CPUperc CPU) {System.out.println ("Benutzer:" + cpuperc.format (cpu.getUser ()); "Sys:" + cpuperc.format (cpu.getSys ()); println ("schön:" + cpuperc.format (cpu.getNice ()); System.out.println ("Gesamt:" + cpuperc.format (cpu.getCombined ()); size = neuer Sign (); "); // Das aktuelle Speicher -Nutzungssystem.out.println (" used = " + mem.getused () / 1024l +" k userd "); // Der aktuelle Speicherrest -System.out.println (" Free = Free = " + Mem.getFree () / 1024l +" k free "); // b) System -Datei -Switch -Informationen Swap Swap = Sigar.getSwap (); // Die Gesamtmenge von System.out.println (" Total = " + swap.gettotal () /) / 1024l + "k av"); / Die verbleibende Menge des aktuellen Austauschbereichssystems.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.UnNOWN";} schließlich {Sigar.CLOSE ();}} return hostname; () = " + Os.getarch ()); + Os.getDatamodel ()); / Das Betriebssystemtyp System.out.println ("os.getName () =" + os.getName ()); Os.getVendor () = " + os.getVendor ()); //" os.getVendorCodename () = " + os.getVendorCodename ()); // Das Betriebssystemname System.out.println (" Os.getVendorname ( ) = " + Os.getVendorname ()); // em .out.println (" os.getVendorversion () = " + os.getVendorversion ()); // Die Versionsnummer system.out.println (" os.getversion () = " + Os.getversion ());} // c) Nehmen Sie die Benutzerinformationen in der aktuellen Systemprozesstabelle.! Länge; .SIGAR.WHO _WHO = WHO [I]; ); ));}}}} Catch (sigarexception e) {e.printstacktrace ();} // 4. () das Dateisystemlistenobjekt und dann erfassen): öffentliche void testFileSystemSystemfo () Ausnahme {Sigar Sigar = new Sigar (); ("user.home"); ~~~~~~~~ " + i +" ~~~~~~~~~~~~ "); der Name des Zeichensystems )); getFlags ()); Lokale Festplatte, optisches Laufwerk, Netzwerkdateisystem und andere Systeme.out.println ("fs.getttypeName () =" + fs.gettTypeName ()); ) = " + fs 0: // type_unkNown: Unbekannter Break; () + "KB"); = " + useage.getAavail () +" kb "); // Das Dateisystem hat bereits System verwendet. () * 100d; 5: // type_cdrom: case 6: // type_swap:} systemm .out.println ("diskreads =" + useage.getDiskreams ()); Informationen // a) aktuell Der formale Domain -Name des Maschinenstufe Getfqdn () {Sigar Sigar = NULL; size (); Adresse = Indadress. (! Netflags.loopback_address.equals (Adresse) {Retail -Adresse;} catch (unbekannteHostException e) {// Hostname nicht in DNS oder /etc /hosts} Sigar igar = new Size (); try {adress = size.getNetinterfaceConfig () .GetAddress ();} catch (sigarexception e) {adress = netflags.loopback_address;} schließlich {sigar.close ();} Rückgabeadresse;} // MAC -Adresse public String getMac () {{) sigar size = null; {size = new Size (); ; if (netflags.loopback_address.equals (cfg.getaddress () || (cfg.getFlags () & netflags.iff_loopback)! * * Wenn es mehrere Netzwerkkarten gibt, einschließlich Netzwerkkarten, einschließlich virtueller Maschinen, wird nur die MAC -Adresse der ersten Netzwerkkarte standardmäßig übernommen. IS Array oder Sammlung *, durch mehrere MAC -Adressen, die in der for -Schleife erhalten wurden. */ hwaddr = cfg.gethwadddr ();} return hwaddr! // d) Informationen wie Netzwerkverkehr und andere Informationen. ; 1l) <= 0L) {print ("! IFF_UP ... übersprungen"); = " + ifStat.gettxpackets (); // Die Gesamtzahl der gesendeten Wraps (" rxBytes = " + ifStat.getRxBytes ()); // Die Gesamtzahl der empfangenen Bytes (" TxBytes = " + IFTAT.GETTXBYTES ())) ; // die Gesamtzahl der Bytes des Byte ("rxerrs =" + ifStat.getRxerrs ()) "rxdroppped =" + ifStat.getRxdropped ()); .GetMessage ());}}} void print (String msg) {System.out.println (msg);} // e) etinfe () {sigar size = null; ] ifaces = sigar.getNetInterfacelist () für (int i = 0; i <i ++) {netInterface config cfg = sigar.getNetInterfaceConfig (ifaces [i]); ()) ||. + cfg.getaddress ()); )heit ("cfg.getDescript () =" + cfg.getDescripting ()); .out.println ("cfg.getDestination () =" + cfg.getDestination ()); ("cfg.getMetric () =" + cfg.getMetric ()); } {System.out.println ("Fehler beim Erstellen von Guid" + e);} endlich {if (size! = Null) size.close ();}}}Es ist zu hoffen, dass dieser Artikel für Java -Programmdesign aller hilfreich ist.