Recientemente, estaba trabajando en un proyecto para obtener información del sistema como CPU Share. Muchas tecnologías nuevas.
En Java, puede obtener información como la memoria física total, la memoria física restante, la memoria física utilizada, etc. Los siguientes ejemplos pueden obtener esta información y obtener la tasa de uso de la memoria en Windows.
Primero, escriba una clase MonitorInfobean para cargar información de monitoreo, incluida la memoria física, la memoria física restante, la memoria física utilizada, el uso de la memoria y otros campos.
paquete com.amgkaka.performance; MonitorInfobean { /*** /** La memoria es utilizable. / Private Long MaxMemory; Memoria. / ** Uso de CPU. setFreephysicalMemorySize (Long FreePhysicalMemorySize) {this. } público void setosname (string osname) {this .osname = Osname; public void settotalMemorySize (Long TotalMemorySize) {this .totalMemorySize = TotalMemorySize; } public void setUshedMemory (Long UsedMemory) {this .usedmemory = usedMemory;
Luego escriba una interfaz para obtener la información de monitoreo actual.
paquete com.amgkaka.performance; Interfaz pública Imonitorservice { /** * / /** * Obtenga el objeto de monitoreo actual. : 08 */ public monitorInfobean getMonitorInfobean () lanza la excepción;
La clase de implementación MonitorServiceImpl de esta clase es el siguiente:
paquete com.amgkaka.performance; Clase de implementación de la lógica de negocios. La tasa de ocupación de la CPU no es precisa. * @return devuelve el objeto de monitoreo construido * @throws excepción * @author amg * Fecha de creación: 2008-4-25-10:45:08 AM */ public monitorinfobean getMonitorInfobean () lanza EXP Episodio {int KB = 1024; La memoria se puede usar Long TotalMemory = Runtime.getRunTime (). TotalMemory () / KB; getRunTime () .MaxMemory () / KB; .GettotalphysicalMemorySize () / KB; Obtenga el número total de Threadgroup ParentThread; ; Freememory); Tamaño); ); :::::::::::::::::: para::: ::::::::::::::::::::::::::::::: : :::::::::::::::::::::::::::::::::::::: Cpuratio); *// ** * Obtenga el uso de CPU. .getenv ("windir") + "//system32//wbem//wmic.exe Process Get Título, Commandlin E," + "KernelModetime, ReadoperationCount, ThreadCount, Usermodetime, WriteOperationCount"; = readCpu (runtime.getRunTime (). EXEC (PROCCMD)); ! = nulo) {long idletime = c1 [0] - c0 [0]; () @Author AMG * Fecha de creación: 2008-4-25-06:10:14 pm */ private long [] readCpu (Final Process Proc) {long [] retn = new Long [2]; .Close (); <Fallas) {return null; ("Usermodetime"); input.readline ())! = NULL) {if (line.length () <wocidx) {continuar; Bytes.substring (línea, capidx, cmdidx - 1) .trim (); > = 0) {continuar; .ValueOf (bytes.substring (línea, kmtidx, rocidx - 1) .trim ()) .longValue (); Valor largo (); , wocidx - 1) .trim ()) .longValue (); {try {proc.getInputStream (). Close (); Excepción de lanza * @Author AMG * Fecha de creación: 2008-4-30-04:47:29 pm */ public static void main (string [] args) arroja excepción {IM onIterservice Service = new MonitorServiceImpl (); .getMonitorInfobean (); ("Memoria restante =" + monitorinfo.getFreememory ()); ()); ); ;
Esta clase de implementación requiere una clase de herramientas que escriba byte usted mismo.
paquete com.amgkaka.performance; /** * / /** * Dado que String.sUnstring tiene problemas con el procesamiento de carácter chino (teniendo en cuenta un carácter chino como byte), existen peligros ocultos cuando * contiene caracteres chinos. Cadena * @param start_idx start coordinate (incluida esta coordenada) * @param end_idx coordenada (incluida esta coordenada) * @return */ public static string subcubre (String src, int intoT_idx, int en d_idx) {byte [] b = src .getBytes ();
Ejecute la clase MonitorBeanImpl y los lectores verán la memoria actual, la utilización de la CPU y otra información.
PD: Método para obtener todos los nombres de host en la LAN
import java.net.inetaddress; import java.net.unknownHosTexception; public class A {static public void main (string [] args) {try {// Obtener la dirección IP I a través de la dirección del nombre de host NetDress = inetaddress.getByName ("192.168 . ; CATC H (desconocidoHosTexception UHE) {System.err.println ("No se puede encontrar:"+"192.168.9.148");