O exemplo deste artigo informa como o Java obtém informações básicas do servidor. Compartilhe para todos para sua referência. Os detalhes são os seguintes:
Use um pacote de jar de terceiros: (Hyperic-HQ Oficial Site: http://www.hyperic.com) Para obter dados do estado do servidor, obtenção de produtos Sigar.Jar de produtos hi-HQ. O pacote Sigar.JAR deve chamar a API do sistema operacional por meio de métodos locais para obter dados relacionados ao sistema. Sigar.Jar Under Windows Operating System depende do Sigar-AMD64-winnt.dll ou Sigar-x86-winnt.dll, enquanto o sistema operacional Linux depende do Libar-Amd64-linux.so ou Libar-X86-linux.so
Importar Java.net.inetaddress; .Hyperic.sigar.mem; .Sigarexception; {Tamanho do retorno.getcpuinfolist (). novo sinal (); + Info.getmhz ()); .println ("Model =" + info.getModel ()); }} Catch (sigarexception e) {e.printStackTrace ();} // c) Uso do usuário da CPU, sistema de uso do sistema, valor restante total, ocupação total de uso, etc. (unidade: 100%) vazio público testcpuperc () {size tamanho = signo () a situação de uma CPUPUPERC da CPU; = NULL; i]);}} private void printcpuperc (cpuperc cpu) {system.out.println ("user:" + cpuperc.format (cpu.getUser ())); "SYS:" + cpuperc.format (cpu.getsys ()); println ("NICE:" + cpuperc.format (cpu.getnice ()); System.out.println ("Total:" + cpuperc.format (cpu.getcombined ())); size = novo sinal (); "); // o sistema de uso de memória atual.out.println (" usou = " + mem.getUsed () / 1024L +" k userd "); // a memória atual restante System.out.println (" "free = = " + Mem.getFree () / 1024L +" k livre "); // b) Página do sistema Switch Information Swap Swap = sigar.getswap (); // a quantidade total de system.out.println (" total = " + swap.gettotal () /) / 1024L + "k av"); / A quantidade restante do sistema de troca atual.It.println ("free =" + swap.getFree () / 1024L + "K grátis"); : Public string getplatformName () {string hostName = "" "" ""; tente {hostName = Indadres.getLocAlHost (). (Exception exc) {sigar sigar = new size (); tente {hostName = size.getNetinfo (). GethostName ();} Catch (sigarexception e) {hostname = "lochost.unknown";} finalmente {sigar.close ();}} retorna o nome do host; () = " + Os.Gegarch ()); System.out.println (" os.getcpuendian () = " + os.getcpuendian ()); // System.out.println (" Os.getDatamodel () = " + Os.getDatamodel ()); / O sistema operacional Type System.out.println ("os.getName () =" + os.getName ()); Os.getVendor () = " + os.getVendor ()); //" os.getVendorCodename () = " + os.getVendorCodename ()); // o nome do sistema operacional System.out.println (" os.getVendorname ( ) = " + Os.getVendorname ()); // em .out.println (" os.getVendorversion () = " + os.getVendorversion ()); // o número da versão System.out.println (" OS.GetVersion () = " + Os.getversion ());} // c) Pegue as informações do usuário na tabela de processos do sistema atual.! = Null && who.length> 0) {for (int i = 0; i <ho. Comprimento; .sigar.who _who = quem [i]; ); ));}}}} Catch (sigarexception e) {e.printStacktrace ();} // 4. () Para obter o objeto Lista de arquivos e compilá -lo): public void testfilesystemsystemfo () lança exceção {sigar sigar = new sigar (); ("user.home"); ~~~~~~~ " + I +" ~~~~~~~~~~~ »); )); getFlags ()); disco rígido local, unidade óptica, sistema de arquivos de rede e outros system.out.println ("fs.gettypeName () =" + fs.gettypeName ()); ) = " + fs.getType ()); irname ());} catch (sigarexception e) {if (fs.gettype () == 2) tiro e; continue;} switch (fs.gettype ()) {case 0: // TIPO_UNKNOWN: Break desconhecido; () + "Kb"); out.println ("until Usuário duplo = Uso.GetusePercent () * 100D; : // type_ram_disk: case 5: // type_cdrom: case 6: // type_swap:} systemm .out.println ("diskReads =" + usoget.getDiskReams ()); .getDiskWrites (); {tente {size = novo size (); S = NULL; Pacote de ferramentas sigar para obter if (! Netflags.loopback_address.equals (endereço) {retornar endereço;} catch (desconhecidohostexception e) {// hostname não em dns ou etc /hosts} sigar igar = new size (); tente {endereço {endereço { = size.getNetInterfaceconfig () .getAddress ();} catch (sigarexception e) {endereço = netflags.loopback_address;} finalmente {sigar.close ();} endereço de retorno;} // mac endereço public string getMac () {{) SIGAR SIME = NULL; (ifaces [i]); ) {Continue;} / * * Se houver vários cartões de rede, incluindo cartões de rede, incluindo máquinas virtuais, apenas o endereço MAC da primeira placa de rede será adotado por padrão. O tipo de retorno do método é a matriz ou coleção *, por vários endereços MAC obtidos no loop for. */ hwaddr = cfg.gethwadddr (); // D) Informações como tráfego de rede e outras informações. Nome do dispositivo de rede ("Endereço" + Ifconfig.getAddress (); 1L) <= 0l) {print ("! Iff_up ... pulando"); = " + ifstat.gettxpackets (); // o número total de envoltórios enviados (" rxbytes = " + ifstat.getRxbytes ()); // o número total de bytes recebidos (" txbytes = " + ifstat.gettxbytes ()) ; "rxdropped =" + ifstat.getrxdropped ()); .getMessage ());}}} void print (string msg) {system.out.println (msg);} // e) etinfe () {size sigur = null; ] ifaces = sigar.getNetNetInterfacelist (); ()) ||. + cfg.getAddress ()); ) = " + cfg.gethwaddr ()); // o endereço de endereço do MAC da placa de rede system.out.println (" cfg.getNetMask () = " + cfg .getNetMask ()); // The Subnet Mask System.out.println ("cfg.getDescript () =" + cfg.getDescriping ()); ()); System.out.println ("cfg.getflags () =" + cfg.getflags ()); ); ;} Finalmente {if (size! = Null) size.close ();}}}Espera -se que este artigo seja útil para o design do programa Java de todos.