導航:首頁 > 編程語言 > java文件監視

java文件監視

發布時間:2023-07-01 17:27:56

java如何實現linux下實時監控文件是否有變化

java 的WatchService 類提供了一種方式可以檢查
try
{
WatchService watchService = FileSystems.getDefault()
.newWatchService();
Path path = Paths.get(pathName);
// 注冊監聽器
path.register(watchService,
StandardWatchEventKinds.ENTRY_CREATE,
StandardWatchEventKinds.ENTRY_DELETE);
while (true)
{
// 阻塞方式,消費文件更改事件
List<WatchEvent<?>> watchEvents = watchService.take()
.pollEvents();
for (WatchEvent<?> watchEvent : watchEvents)
{
System.out.printf("[%s]文件發生了[%s]事件。%n", watchEvent
.context(), watchEvent.kind());
}
}
}
catch (Exception e)
{
}

❷ java實時監控區域網共享文件夾並復制文件到指定位置

首先要保證電腦A和電腦B網路可到達
然後在java里用一個線程(死循環)一直「監控」電腦A里的共享文件夾的大小 只要一有變化就讓電腦A里的共享文件夾下的所有文件復制一份到電腦B的共享文件夾下 然後把電腦A里的共享文件夾下的文件刪除

❸ 如何監視計算機的CPU,內存和磁碟使用情況在Java中

使用sigar來監控,簡單方便!
使用說明:以下代碼需要配合sigar的dll文件來用,需要將dll文件放到JDK下的bin文件夾下,供sigar程序調用,還需要sigarjar包。以下程序經過測試,完全可用!

有關jar包跟dll文件我上傳不了,私信我,我發你importjava.net.InetAddress;
importjava.net.UnknownHostException;
importjava.util.Map;
importjava.util.Properties;
importjava.util.Timer;
importjava.util.TimerTask;

importorg.hyperic.sigar.CpuInfo;
importorg.hyperic.sigar.CpuPerc;
importorg.hyperic.sigar.FileSystem;
importorg.hyperic.sigar.FileSystemUsage;
importorg.hyperic.sigar.Mem;
importorg.hyperic.sigar.NetFlags;
importorg.hyperic.sigar.NetInterfaceConfig;
importorg.hyperic.sigar.NetInterfaceStat;
importorg.hyperic.sigar.OperatingSystem;
importorg.hyperic.sigar.Sigar;
importorg.hyperic.sigar.SigarException;
importorg.hyperic.sigar.Swap;
importorg.hyperic.sigar.Who;

publicclassRuntimeTest{
publicstaticvoidmain(String[]args){
try{
Timertimer=newTimer();//定時器
TimerTasktask=newTimerTask(){
publicvoidrun(){
try{
memory();
}catch(SigarExceptione){
e.printStackTrace();
}
}
};
try{
timer.schele(task,0,3000);//每3秒取一次
}catch(Exceptionex){
ex.printStackTrace();
}
//System信息,從jvm獲取
//property();//根據自己的需求,都可以放到定時器中定時獲取
//cpu信息
//cpu();
//內存信息
//memory();
//操作系統信息
//os();
//用戶信息
//who();}catch(Exceptione1){
e1.printStackTrace();
}
}

privatestaticvoidproperty()throwsUnknownHostException{
Runtimer=Runtime.getRuntime();
Propertiesprops=System.getProperties();
InetAddressaddr;
addr=InetAddress.getLocalHost();
Stringip=addr.getHostAddress();
Map<String,String>map=System.getenv();
StringuserName=map.get("USERNAME");//獲取用戶名
StringcomputerName=map.get("COMPUTERNAME");//獲取計算機名
StringuserDomain=map.get("USERDOMAIN");//獲取計算機域名
System.out.println("用戶名:"+userName);
System.out.println("計算機名:"+computerName);
System.out.println("計算機域名:"+userDomain);
System.out.println("本地ip地址:"+ip);
System.out.println("本地主機名:"+addr.getHostName());
System.out.println("JVM可以使用的總內存:"+r.totalMemory());
System.out.println("JVM可以使用的剩餘內存:"+r.freeMemory());
System.out.println("JVM可以使用的處理器個數:"+r.availableProcessors());
System.out.println("Java的運行環境版本:"+props.getProperty("java.version"));
System.out.println("Java的運行環境供應商:"+props.getProperty("java.vendor"));
System.out.println("Java供應商的URL:"+props.getProperty("java.vendor.url"));
System.out.println("Java的安裝路徑:"+props.getProperty("java.home"));
System.out.println("Java的虛擬機規范版本:"+props.getProperty("java.vm.specification.version"));
System.out.println("Java的虛擬機規范供應商:"+props.getProperty("java.vm.specification.vendor"));
System.out.println("Java的虛擬機規范名稱:"+props.getProperty("java.vm.specification.name"));
System.out.println("Java的虛擬機實現版本:"+props.getProperty("java.vm.version"));
System.out.println("Java的虛擬機實現供應商:"+props.getProperty("java.vm.vendor"));
System.out.println("Java的虛擬機實現名稱:"+props.getProperty("java.vm.name"));
System.out.println("Java運行時環境規范版本:"+props.getProperty("java.specification.version"));
System.out.println("Java運行時環境規范供應商:"+props.getProperty("java.specification.vender"));
System.out.println("Java運行時環境規范名稱:"+props.getProperty("java.specification.name"));
System.out.println("Java的類格式版本號:"+props.getProperty("java.class.version"));
System.out.println("Java的類路徑:"+props.getProperty("java.class.path"));
System.out.println("載入庫時搜索的路徑列表:"+props.getProperty("java.library.path"));
System.out.println("默認的臨時文件路徑:"+props.getProperty("java.io.tmpdir"));
System.out.println("一個或多個擴展目錄的路徑:"+props.getProperty("java.ext.dirs"));
System.out.println("操作系統的名稱:"+props.getProperty("os.name"));
System.out.println("操作系統的構架:"+props.getProperty("os.arch"));
System.out.println("操作系統的版本:"+props.getProperty("os.version"));
System.out.println("文件分隔符:"+props.getProperty("file.separator"));
System.out.println("路徑分隔符:"+props.getProperty("path.separator"));
System.out.println("行分隔符:"+props.getProperty("line.separator"));
System.out.println("用戶的賬戶名稱:"+props.getProperty("user.name"));
System.out.println("用戶的主目錄:"+props.getProperty("user.home"));
System.out.println("用戶的當前工作目錄:"+props.getProperty("user.dir"));
}

privatestaticvoidmemory()throwsSigarException{
Sigarsigar=newSigar();
Memmem=sigar.getMem();
floattotal=mem.getTotal();
floatused=mem.getUsed();
//內存總量
System.out.println("內存總量:"+mem.getTotal()/1024L/1024L+"Mav");
//當前內存使用量
System.out.println("當前內存使用量:"+mem.getUsed()/1024L/1024L+"Mused");
//當前內存剩餘量
System.out.println("當前內存剩餘量:"+mem.getFree()/1024L/1024L+"Mfree");
//當前內存使用率
System.out.println("內存使用率:"+used/total*100+"%");
Swapswap=sigar.getSwap();
//交換區總量
System.out.println("交換區總量:"+swap.getTotal()/1024L/1024L+"Mav");
//當前交換區使用量
System.out.println("當前交換區使用量:"+swap.getUsed()/1024L/1024L+"Mused");
//當前交換區剩餘量
System.out.println("當前交換區剩餘量:"+swap.getFree()/1024L/1024L+"Mfree");
}

privatestaticvoidcpu()throwsSigarException{
Sigarsigar=newSigar();
CpuInfoinfos[]=sigar.getCpuInfoList();
CpuPerccpuList[]=null;
cpuList=sigar.getCpuPercList();
for(inti=0;i<infos.length;i++){//不管是單塊CPU還是多CPU都適用
CpuInfoinfo=infos[i];
System.out.println("第"+(i+1)+"塊CPU信息");
System.out.println("CPU的總量MHz:"+info.getMhz());//CPU的總量MHz
System.out.println("CPU生產商:"+info.getVendor());//獲得CPU的賣主,如:Intel
System.out.println("CPU類別:"+info.getModel());//獲得CPU的類別,如:Celeron
System.out.println("CPU緩存數量:"+info.getCacheSize());//緩沖存儲器數量
printCpuPerc(cpuList[i]);
}
}

privatestaticvoidprintCpuPerc(CpuPerccpu){
System.out.println("CPU用戶使用率:"+CpuPerc.format(cpu.getUser()));//用戶使用率
System.out.println("CPU系統使用率:"+CpuPerc.format(cpu.getSys()));//系統使用率
System.out.println("CPU當前等待率:"+CpuPerc.format(cpu.getWait()));//當前等待率
System.out.println("CPU當前錯誤率:"+CpuPerc.format(cpu.getNice()));//
System.out.println("CPU當前空閑率:"+CpuPerc.format(cpu.getIdle()));//當前空閑率
System.out.println("CPU總的使用率:"+CpuPerc.format(cpu.getCombined()));//總的使用率
}

privatestaticvoidos(){
OperatingSystemOS=OperatingSystem.getInstance();
//操作系統內核類型如:386、486、586等x86
System.out.println("操作系統:"+OS.getArch());
System.out.println("操作系統CpuEndian():"+OS.getCpuEndian());//
System.out.println("操作系統DataModel():"+OS.getDataModel());//
//系統描述
System.out.println("操作系統的描述:"+OS.getDescription());
//操作系統類型
//System.out.println("OS.getName():"+OS.getName());
//System.out.println("OS.getPatchLevel():"+OS.getPatchLevel());//
//操作系統的賣主
System.out.println("操作系統的賣主:"+OS.getVendor());
//賣主名稱
System.out.println("操作系統的賣主名:"+OS.getVendorCodeName());
//操作系統名稱
System.out.println("操作系統名稱:"+OS.getVendorName());
//操作系統賣主類型
System.out.println("操作系統賣主類型:"+OS.getVendorVersion());
//操作系統的版本號
System.out.println("操作系統的版本號:"+OS.getVersion());
}

privatestaticvoidwho()throwsSigarException{
Sigarsigar=newSigar();
Whowho[]=sigar.getWhoList();
if(who!=null&&who.length>0){
for(inti=0;i<who.length;i++){
//System.out.println("當前系統進程表中的用戶名"+String.valueOf(i));
Who_who=who[i];
System.out.println("用戶控制台:"+_who.getDevice());
System.out.println("用戶host:"+_who.getHost());
//System.out.println("getTime():"+_who.getTime());
//當前系統進程表中的用戶名
System.out.println("當前系統進程表中的用戶名:"+_who.getUser());
}
}
}


}

❹ 請教,怎麼監控一個Java程序是否運行結束

檢測一個JAVA程序的運行時間方法:

1
2
3
4

long startTime = System.currentTimeMillis();//獲取當前時間
//doSomeThing(); //要運行的java程序
long endTime = System.currentTimeMillis();
System.out.println("程序運行時間:"+(endTime-startTime)+"ms");

閱讀全文

與java文件監視相關的資料

熱點內容
安卓手機電話簿怎麼導出到蘋果手機 瀏覽:761
php實現投票 瀏覽:331
手機爆力解壓加密視頻文件 瀏覽:930
東方財富app怎麼看北上資金圖解 瀏覽:416
邢昭林程序員那麼可愛拍現場 瀏覽:169
安卓什麼應用可以免費看電視劇 瀏覽:504
合適pdf 瀏覽:293
app監測睡眠怎麼選擇 瀏覽:642
老人家用什麼安卓手機好 瀏覽:955
解壓包能不能送女朋友 瀏覽:701
好看發卡網源碼 瀏覽:51
水平集演算法matlab 瀏覽:769
區域網如何用ftp伺服器配置 瀏覽:74
程序員慣性思考模式 瀏覽:441
如何在個稅app上查身份證號 瀏覽:7
電視家app安裝在電視上怎麼安 瀏覽:889
怎麼將pdf格式轉化為圖片格式 瀏覽:639
伺服器拔掉raid卡怎麼裝系統 瀏覽:234
區域對稱加密演算法 瀏覽:247
數字轉漢字php 瀏覽:735