當前位置:編程學習大全網 - 源碼下載 - 怎麽用java讀取windows系統日誌

怎麽用java讀取windows系統日誌

您好,很高興為您解答。

獲取相關信息的簡單的方法

import?java.io.*;

import?com.sun.management.OperatingSystemMXBean;

import?sun.management.ManagementFactory;

public?class?Tst{

publicstatic?String?pt="D:\\abc.txt";

publicTst(){

}

public?static?void?main(String[]?args)?throws?Exception{

//free和use和total均為KB

longfree=0;

longuse=0;

longtotal=0;

intkb=1024;

Runtimert=Runtime.getRuntime();

total=rt.totalMemory();

free=rt.freeMemory();

use=total-free;

System.out.println("系統內存已用的空間為:"+use/kb+"MB");

System.out.println("系統內存的空閑空間為:"+free/kb+"MB");

System.out.println("系統總內存空間為:"+total/kb+"MB");

OperatingSystemMXBeanosmxb?=?(OperatingSystemMXBean)?

ManagementFactory.getOperatingSystemMXBean();

longphysicalFree=osmxb.getFreePhysicalMemorySize()/kb;

longphysicalTotal=osmxb.getTotalPhysicalMemorySize()/kb;

longphysicalUse=physicalTotal-physicalFree;

Stringos=System.getProperty("os.name");

System.out.println("操作系統的版本:"+os);

System.out.println("系統物理內存已用的空間為:"+physicalFree+"MB");

System.out.println("系統物理內存的空閑空間為:"+physicalUse+"MB");

System.out.println("總物理內存:"+physicalTotal+"MB");

//?獲得線程總數

ThreadGroup?parentThread;

for(parentThread?=?Thread.currentThread().getThreadGroup();?

parentThread

.getParent()?!=?null;?parentThread=?

parentThread.getParent())

inttotalThread?=?parentThread.activeCount();

System.out.println("獲得線程總數:"+totalThread);

}

}

// 3.操作系統信息

//?a)取到當前操作系統的名稱:

public?String?getPlatformName()?{

String?hostname?=?"";

try?

{

hostname?=?InetAddress.getLocalHost().getHostName();

}?catch?

(Exception?exc)?{

Sigar?sigar?=?new?Sigar();

try?{

hostname?=?

sigar.getNetInfo().getHostName();

}?catch?(SigarException?e)?

{

hostname?=?"localhost.unknown";

}?finally?

{

sigar.close();

}

}

return?hostname;

}

//?b)取當前操作系統的信息

public?void?testGetOSInfo()?{

OperatingSystem?OS?=?

OperatingSystem.getInstance();

//?操作系統內核類型如:?

386、486、586等x86

System.out.println("OS.getArch()?=?"?+?

OS.getArch());

System.out.println("OS.getCpuEndian()?=?"?

+OS.getCpuEndian());//

System.out.println("OS.getDataModel()?=?"?

+OS.getDataModel());//

//?系統描述

System.out.println("OS.getDescription()?

=?"?+OS.getDescription());

System.out.println("OS.getMachine()?=?"?

+OS.getMachine());//

//?操作系統類型

System.out.println("OS.getName()?=?"?+?

OS.getName());

System.out.println("OS.getPatchLevel()?=?"?

+OS.getPatchLevel());//

//?操作系統的賣主

System.out.println("OS.getVendor()?

=?"?+?OS.getVendor());

//?

賣主名稱

System.out

.println("OS.getVendorCodeName()?=?"?

+OS.getVendorCodeName());

//?

操作系統名稱

System.out.println("OS.getVendorName()?=?"?

+OS.getVendorName());

//?

操作系統賣主類型

System.out.println("OS.getVendorVersion()?=?"?

+OS.getVendorVersion());

//?

操作系統的版本號

System.out.println("OS.getVersion()?=?"?

+OS.getVersion());

} // 4.資源信息(主要是硬盤)

?//?

a)取硬盤已有的分區及其詳細信息(通過sigar.getFileSystemList()來獲得FileSystem列表對象,然後對其進行編歷):

public?

void?testFileSystemInfo()?throws?Exception?{

Sigar?sigar?=?new?

Sigar();

FileSystem?fslist[]?=?sigar.getFileSystemList();

//String?dir?

=?System.getProperty("user.home");//?當前用戶文件夾路徑

for?(int?i?=?0;?i?<?

fslist.length;?i++)?{

System.out.println("\n~~~~~~~~~~"?+?i?

+"~~~~~~~~~~");

FileSystem?fs?=?fslist[i];

//?

分區的盤符名稱

System.out.println("fs.getDevName()?=?"?

+fs.getDevName());

//?分區的盤符名稱

System.out.println("fs.getDirName()?=?

"?+fs.getDirName());

System.out.println("fs.getFlags()?=?"?+?

fs.getFlags());//

//?文件系統類型,比如?

FAT32、NTFS

System.out.println("fs.getSysTypeName()?=?"?

+fs.getSysTypeName());

//?

文件系統類型名,比如本地硬盤、光驅、網絡文件系統等

System.out.println("fs.getTypeName()?=?"?

+fs.getTypeName());

//?文件系統類型

System.out.println("fs.getType()?=?"?

+fs.getType());

FileSystemUsage?usage?=?null;

try?{

usage?=?

sigar.getFileSystemUsage(fs.getDirName());

}?catch?(SigarException?e)?

{

if?(fs.getType()?==?2)

throw?

e;

continue;

}

switch?(fs.getType())?{

case?0:?//?

TYPE_UNKNOWN?:未知

break;

case?1:?//?

TYPE_NONE

break;

case?2:?//?TYPE_LOCAL_DISK?:?本地硬盤

//?

文件系統總大小

System.out.println("?Total?=?"?+usage.getTotal()?+?

"KB");

//?文件系統剩余大小

System.out.println("?Free?=?"?+usage.getFree()?

+?"KB");

//?文件系統可用大小

System.out.println("?Avail?=?"?

+usage.getAvail()?+?"KB");

//?文件系統已經使用量

System.out.println("?Used?

=?"?+usage.getUsed()?+?"KB");

double?usePercent?=?usage.getUsePercent()?*?

100D;

//?文件系統資源的利用率

System.out.println("?Usage?=?"?+?usePercent?

+"%");

break;

case?3://?TYPE_NETWORK?:網絡

break;

case?

4://?TYPE_RAM_DISK?:閃存

break;

case?5://?TYPE_CDROM?

:光驅

break;

case?6://?TYPE_SWAP?

:頁面交換

break;

}

System.out.println("?DiskReads?=?"?

+usage.getDiskReads());

System.out.println("?DiskWrites?=?"?

+usage.getDiskWrites());

}

return;

}

如若滿意,請點擊右側采納答案,如若還有問題,請點擊追問

希望我的回答對您有所幫助,望采納!

~ O(∩_∩)O~

  • 上一篇:電腦常見問題解決方法
  • 下一篇:我想做個論壇站!選擇織夢還是Discuz呢?
  • copyright 2024編程學習大全網