导航:首页 > 编程语言 > 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文件监视相关的资料

热点内容
服务器怎么执行sql 浏览:974
小孩子命令 浏览:706
贷款申请系统源码 浏览:266
windowsxp文件夹打开后怎么返回 浏览:662
怎么把pdf变成图片 浏览:795
17年程序员事件 浏览:494
iishttp压缩 浏览:29
公司文件加密后拷走能打开吗 浏览:186
headfirstjava中文 浏览:894
腾讯云服务器怎么放在电脑桌面 浏览:8
批量生成图片的app哪个好 浏览:496
小米10电池校准命令 浏览:96
移动商城系统app如何开发 浏览:692
用安卓手机如何发高清短视频 浏览:339
怎样运行java程序运行 浏览:553
海南根服务器镜像云服务器 浏览:536
weka聚类算法 浏览:452
视频服务器修复是什么意思 浏览:498
python跨平台开发 浏览:916
音遇app全民k歌从哪里下载 浏览:646