我需要在不使用JMX的情况下获取java中远程系统的CPU使用率。
我有在本地机器上测试的代码,但不是远程机器
try{
Sigar session = new Sigar();
System.out.println(session.getNetInfo());
String temp,fdigit;
int cpuUsage=0;
double freeCpu = 0;
DecimalFormatSymbols simbol = new DecimalFormatSymbols();
simbol.setDecimalSeparator('.');
DecimalFormat df = new DecimalFormat("##.##",simbol);
while(true){
temp="";
cpuUsage=0;
Thread.sleep(900);
CpuPerc cpuPerc = session.getCpuPerc();
freeCpu = cpuPerc.getCombined()*100;
freeCpu = Double.valueOf(df.format(freeCpu));
temp=""+freeCpu;
fdigit=temp.substring(temp.indexOf(".")+1);
if(Integer.parseInt(fdigit)>=4){
cpuUsage=Integer.parseInt(temp.substring(0, temp.indexOf(".")));
cpuUsage=cpuUsage+1;
}
System.out.println(cpuUsage+"%");
}
}
catch(Exception e){
System.out.println(e.getMessage());
}
我用Google搜索,但是在没有使用JMX的情况下我找不到任何样本。
所以我希望我们的堆栈溢出用户会帮忙。让我知道尽快...