0
我想在两个单独的JProgressBar
s中显示当前杯子使用情况和磁盘使用情况。而且它应该每秒更新一次。如何使用java做到这一点?我对Java编程颇为陌生,所以请给我一些代码示例。如何显示JProgressBar中的CPU和磁盘使用情况?
在此先感谢。
我想在两个单独的JProgressBar
s中显示当前杯子使用情况和磁盘使用情况。而且它应该每秒更新一次。如何使用java做到这一点?我对Java编程颇为陌生,所以请给我一些代码示例。如何显示JProgressBar中的CPU和磁盘使用情况?
在此先感谢。
可以使用javasysmon-0.3.4.jar文件,以获取系统信息相关的CPU使用率,内存使用率等
一些下面列出了这些方法,如果你想要其他东西,你可以探索。
JavaSysMon monitor=new JavaSysMon();
//System.out.println("Operating System name is
"+monitor.osName());
long usersMillis = monitor.cpuTimes().getUserMillis();
/*System.out.println(String.format("User milli are %d days, %d
hr, %d min, %d sec",
TimeUnit.MILLISECONDS.toDays(usersMillis),
TimeUnit.MILLISECONDS.toHours(usersMillis),
TimeUnit.MILLISECONDS.toMinutes(usersMillis),
TimeUnit.MILLISECONDS.toSeconds(usersMillis)
));*/
long systemMillis = monitor.cpuTimes().getSystemMillis();
/*System.out.println(String.format("System milli are %d days, %d
hr, %d min, %d sec",
TimeUnit.MILLISECONDS.toDays(systemMillis),
TimeUnit.MILLISECONDS.toHours(systemMillis),
TimeUnit.MILLISECONDS.toMinutes(systemMillis),
TimeUnit.MILLISECONDS.toSeconds(systemMillis)
));*/
long idleMilli = monitor.cpuTimes().getIdleMillis();
/*System.out.println(String.format("Idle milli are %d days, %d
hr, %d min, %d sec",
TimeUnit.MILLISECONDS.toDays(idleMilli),
TimeUnit.MILLISECONDS.toHours(idleMilli),
TimeUnit.MILLISECONDS.toMinutes(idleMilli),
TimeUnit.MILLISECONDS.toSeconds(idleMilli)
));*/
/*CpuTimes time=new CpuTimes(usersMillis, systemMillis,
idleMilli);
cpuUsage=String.format("%.5f",
monitor.cpuTimes().getCpuUsage(time));*/
// System.out.println("CPU Usages "+String.format("%.5f",
monitor.cpuTimes().getCpuUsage(time)));
if(initialTime == null){
initialTime = monitor.cpuTimes();
}
cpuUsage = new
Float(monitor.cpuTimes().getCpuUsage(initialTime)).toString();
initialTime = monitor.cpuTimes();
long cpuUpTimeL = monitor.uptimeInSeconds()*1000;
float t = cpuUpTimeL/(float)(1000 * 60 * 60 * 24);
int days=(int) t;
t=t-days;
t= (t*24);
int hrs=(int) t;
t=t-hrs;
t=t*60;
int mins=(int) t;
t=t-mins;
t=t*60;
int secs=(int) t;
cpuUpTime=GetTotalTimeTakenInJourney.getTotalTimeTaken(days, hrs,
mins, secs);
// System.out.println("CPU Up time "+days+" days "+hrs+" hrs
"+mins+" mints "+secs+" seconds");
//System.out.println("CPU Numbers "+monitor.numCpus());
long totalBytes=monitor.physical().getTotalBytes();
totalRam=totalBytes/(float)(1024*1024*1024);
long freeBytes=monitor.physical().getFreeBytes();
freeRam=freeBytes/(float)(1024*1024*1024);
long ramUsages=totalBytes-freeBytes;
usedRam=ramUsages/(float)(1024*1024*1024);
,你可以通过这个代码使用任务列表命令
Runtime.getRuntime().exec(command)
这是一个三部分问题。 1.如何获得CPU使用率?2.如何获得磁盘使用情况?3.如何将这些数据粘合到一组更新进度条中。你应该尝试限制你的问题到一个主题,并解释你尝试过的。 – Petesh