Недавно я работал над проектом по получению системной информации, такой как CPU Share. Много новых технологий.
В Java вы можете получить информацию, такую как общая физическая память, оставшаяся физическая память, используемая физическая память и т. Д. Следующие примеры могут получить эту информацию и получить скорость использования памяти под Windows.
Во -первых, напишите класс MonitorInfobean, чтобы загрузить некоторую информацию о мониторинге, включая физическую память, оставшуюся физическую память, использование физической памяти, использование памяти и другие поля.
Пакет com.amgkaka.performance; MonitorInfobean { /*** /** Остальная память. / Private Long Maxmemory; Память / ** Использование ЦП SetFreephysicalMemorysize (Long FreephysicalMemorysize) {this .freephysicalMemorysize = FreephysicalMemorysize; } public void setoSname (String osname) {this .osname = osname; public void mehsemorysize (long memonorysize) {this .totalMemorySize = TotalMemorySize; } public void -setusedMemory (LongshyMemory) {this .usedMemory = usedMemory;
Затем напишите интерфейс, чтобы получить текущую информацию о мониторинге.
Пакет com.amgkaka.performance; Публичный интерфейс imonitorservice { /** * / /** * Получить текущий объект мониторинга. : 08 */ public monitorinfobean getmonitorinfobean () бросает исключение;}
Класс внедрения мониторинга, в этом классе следующим образом:
Пакет com.amgkaka.performance; Класс внедрения бизнеса логики. Занятие процессора во время проверки не является точной. * @return Верните построенный объект мониторинга * @Throws Exception * @author AMG * Дата создания: 2008-4-25-10:45:08 */ public monitorinfobean getMonitorInfobean (). Память может использоваться Long TotalMemory = Runtime.getRuntime (). TotalMemory () / KB; getRuntime () .maxmemory () / KB; .GetTotalPhysicalMemorySize () / KB; Получите общее количество потоков Threadgroup ParentThread; ; Freememement); Размер); ); ::::::::::::::::: :::::::::::::: */ ** * Получить использование процессора. .getenv ("windir") + "//system32//wbem//wmic.exe process get Подпись, Commandline E," + "KernelmodeTime, ReadoPerationCount, ThinkCount, USERMODETIME, writeOperationCount"; = readcpu (runting.getruntime (). Exec (proccmd); ! = null) {long idletime = c1 [0] - c0 [0]; (); @author amg * Дата создания: 2008-4-25-06:10:14 */ private long [] readcpu (окончательный процесс procc) {long [] retn = new long [2]; .close (); <Bulllength) {return null; (Usermodetime »); input.readline ())! = null) {if (line.length () <wocidx) {продолжение; Bytes.substring (Line, Capidx, Cmdidx - 1) .trim (); > = 0) {продолжение;} // log.info ("line =" +line); .valueof (bytes.substring (line, kmtidx, rocidx - 1) .trim ()) .longvalue (); longvalue (); , wocidx - 1) .trim () {try {proc.getInputStream (). Close (); Выбросить исключение * @author amg * Дата создания: 2008-4-30-04:47:29 PM */ public static void main (string [] args) бросает исключение {im onitorservice service = new monitorServiceImpl (); .getmonitorinfobean (); («Оставшаяся память =» + monitorinfo.getfreememory ()); ()); ); ;
Этот класс реализации требует класса инструментов, который выписывает байт самостоятельно.
Пакет com.amgkaka.performance; /** * / /** * Поскольку string.substring имеет проблемы с обработкой китайской символов (рассматривая китайский символ как байт), есть скрытые опасности, когда * содержит китайские иероглифы. string * @param start_idx start comportinate (включая эту координату) * @param end_idx координата среза (включая эту координату) * @return */ public Static String substring (String src, int start_idx, int en d_idx) {byte [] b = src .getBytes ();
Запустите класс MonitorBeanImpl, и читатели увидят текущую память, использование ЦП и другую информацию.
PS: Метод для получения всех имен хоста в локальной сети
Импорт java.net.inetAddress; import java.net.unknownhostexception; открытый класс A {static public void main (string [] args) {try {// получить IP -адрес I через имя хоста NetAddress = inetAddress.getByName ("192.168 .9.148 "); System.out.println (" 192.168.9.148 "+": "+address.gethostaddress ()); // Получить имя хоста через IP String IPS =" 192.168.9. ; CATC H (Unknownhostexception uhe) {System.err.println ("Невозможно найти:"+"192.168.9.148");