没有现成的dll实现。你可以参考这个程序
>
1、在远程server里搭建一个>
使用sigar来监控,简单方便!
使用说明:以下代码需要配合sigar的dll文件来用,需要将dll文件放到JDK下的bin文件夹下,供sigar程序调用,还需要sigar jar包。以下程序经过测试,完全可用!
有关jar包跟dll文件 我上传不了,私信我,我发你
import javanetInetAddress;
import javanetUnknownHostException;
import javautilMap;
import javautilProperties;
import javautilTimer;
import javautilTimerTask;
import orghypericsigarCpuInfo;
import orghypericsigarCpuPerc;
import orghypericsigarFileSystem;
import orghypericsigarFileSystemUsage;
import orghypericsigarMem;
import orghypericsigarNetFlags;
import orghypericsigarNetInterfaceConfig;
import orghypericsigarNetInterfaceStat;
import orghypericsigarOperatingSystem;
import orghypericsigarSigar;
import orghypericsigarSigarException;
import orghypericsigarSwap;
import orghypericsigarWho;
public class RuntimeTest {
public static void main(String[] args) {
try {
Timer timer = new Timer();//定时器
TimerTask task = new TimerTask(){
public void run() {
try {
memory();
} catch (SigarException e) {
eprintStackTrace();
}
}
};
try{
timerschedule(task, 0, 3000);//每3秒取一次
}catch(Exception ex){
exprintStackTrace();
}
// System信息,从jvm获取
// property();//根据自己的需求,都可以放到定时器中定时获取
// cpu信息
//cpu();
// 内存信息
// memory();
// *** 作系统信息
// os();
// 用户信息
// who();
} catch (Exception e1) {
e1printStackTrace();
}
}
private static void property() throws UnknownHostException {
Runtime r = RuntimegetRuntime();
Properties props = SystemgetProperties();
InetAddress addr;
addr = InetAddressgetLocalHost();
String ip = addrgetHostAddress();
Map<String, String> map = Systemgetenv();
String userName = mapget("USERNAME");// 获取用户名
String computerName = mapget("COMPUTERNAME");// 获取计算机名
String userDomain = mapget("USERDOMAIN");// 获取计算机域名
Systemoutprintln("用户名: " + userName);
Systemoutprintln("计算机名: " + computerName);
Systemoutprintln("计算机域名: " + userDomain);
Systemoutprintln("本地ip地址: " + ip);
Systemoutprintln("本地主机名: " + addrgetHostName());
Systemoutprintln("JVM可以使用的总内存: " + rtotalMemory());
Systemoutprintln("JVM可以使用的剩余内存: " + rfreeMemory());
Systemoutprintln("JVM可以使用的处理器个数: " + ravailableProcessors());
Systemoutprintln("Java的运行环境版本: " + propsgetProperty("javaversion"));
Systemoutprintln("Java的运行环境供应商: " + propsgetProperty("javavendor"));
Systemoutprintln("Java供应商的URL: " + propsgetProperty("javavendorurl"));
Systemoutprintln("Java的安装路径: " + propsgetProperty("javahome"));
Systemoutprintln("Java的虚拟机规范版本: " + propsgetProperty("javavmspecificationversion"));
Systemoutprintln("Java的虚拟机规范供应商: " + propsgetProperty("javavmspecificationvendor"));
Systemoutprintln("Java的虚拟机规范名称: " + propsgetProperty("javavmspecificationname"));
Systemoutprintln("Java的虚拟机实现版本: " + propsgetProperty("javavmversion"));
Systemoutprintln("Java的虚拟机实现供应商: " + propsgetProperty("javavmvendor"));
Systemoutprintln("Java的虚拟机实现名称: " + propsgetProperty("javavmname"));
Systemoutprintln("Java运行时环境规范版本: " + propsgetProperty("javaspecificationversion"));
Systemoutprintln("Java运行时环境规范供应商: " + propsgetProperty("javaspecificationvender"));
Systemoutprintln("Java运行时环境规范名称: " + propsgetProperty("javaspecificationname"));
Systemoutprintln("Java的类格式版本号: " + propsgetProperty("javaclassversion"));
Systemoutprintln("Java的类路径: " + propsgetProperty("javaclasspath"));
Systemoutprintln("加载库时搜索的路径列表: " + propsgetProperty("javalibrarypath"));
Systemoutprintln("默认的临时文件路径: " + propsgetProperty("javaiotmpdir"));
Systemoutprintln("一个或多个扩展目录的路径: " + propsgetProperty("javaextdirs"));
Systemoutprintln(" *** 作系统的名称: " + propsgetProperty("osname"));
Systemoutprintln(" *** 作系统的构架: " + propsgetProperty("osarch"));
Systemoutprintln(" *** 作系统的版本: " + propsgetProperty("osversion"));
Systemoutprintln("文件分隔符: " + propsgetProperty("fileseparator"));
Systemoutprintln("路径分隔符: " + propsgetProperty("pathseparator"));
Systemoutprintln("行分隔符: " + propsgetProperty("lineseparator"));
Systemoutprintln("用户的账户名称: " + propsgetProperty("username"));
Systemoutprintln("用户的主目录: " + propsgetProperty("userhome"));
Systemoutprintln("用户的当前工作目录: " + propsgetProperty("userdir"));
}
private static void memory() throws SigarException {
Sigar sigar = new Sigar();
Mem mem = sigargetMem();
float total = memgetTotal();
float used = memgetUsed();
// 内存总量
Systemoutprintln("内存总量: " + memgetTotal() / 1024L/1024L + "M av");
// 当前内存使用量
Systemoutprintln("当前内存使用量: " + memgetUsed() / 1024L/1024L + "M used");
// 当前内存剩余量
Systemoutprintln("当前内存剩余量: " + memgetFree() / 1024L/1024L + "M free");
// 当前内存使用率
Systemoutprintln("内存使用率: " +used/total100+"%");
Swap swap = sigargetSwap();
// 交换区总量
Systemoutprintln("交换区总量: " + swapgetTotal() / 1024L/1024L + "M av");
// 当前交换区使用量
Systemoutprintln("当前交换区使用量: " + swapgetUsed() / 1024L/1024L + "M used");
// 当前交换区剩余量
Systemoutprintln("当前交换区剩余量: " + swapgetFree() / 1024L/1024L + "M free");
}
private static void cpu() throws SigarException {
Sigar sigar = new Sigar();
CpuInfo infos[] = sigargetCpuInfoList();
CpuPerc cpuList[] = null;
cpuList = sigargetCpuPercList();
for (int i = 0; i < infoslength; i++) {// 不管是单块CPU还是多CPU都适用
CpuInfo info = infos[i];
Systemoutprintln("第" + (i + 1) + "块CPU信息");
Systemoutprintln("CPU的总量MHz: " + infogetMhz());// CPU的总量MHz
Systemoutprintln("CPU生产商: " + infogetVendor());// 获得CPU的卖主,如:Intel
Systemoutprintln("CPU类别: " + infogetModel());// 获得CPU的类别,如:Celeron
Systemoutprintln("CPU缓存数量: " + infogetCacheSize());// 缓冲存储器数量
printCpuPerc(cpuList[i]);
}
}
private static void printCpuPerc(CpuPerc cpu) {
Systemoutprintln("CPU用户使用率: " + CpuPercformat(cpugetUser()));// 用户使用率
Systemoutprintln("CPU系统使用率: " + CpuPercformat(cpugetSys()));// 系统使用率
Systemoutprintln("CPU当前等待率: " + CpuPercformat(cpugetWait()));// 当前等待率
Systemoutprintln("CPU当前错误率: " + CpuPercformat(cpugetNice()));//
Systemoutprintln("CPU当前空闲率: " + CpuPercformat(cpugetIdle()));// 当前空闲率
Systemoutprintln("CPU总的使用率: " + CpuPercformat(cpugetCombined()));// 总的使用率
}
private static void os() {
OperatingSystem OS = OperatingSystemgetInstance();
// *** 作系统内核类型如: 386、486、586等x86
Systemoutprintln(" *** 作系统: " + OSgetArch());
Systemoutprintln(" *** 作系统CpuEndian(): " + OSgetCpuEndian());//
Systemoutprintln(" *** 作系统DataModel(): " + OSgetDataModel());//
// 系统描述
Systemoutprintln(" *** 作系统的描述: " + OSgetDescription());
// *** 作系统类型
// Systemoutprintln("OSgetName(): " + OSgetName());
// Systemoutprintln("OSgetPatchLevel(): " + OSgetPatchLevel());//
// *** 作系统的卖主
Systemoutprintln(" *** 作系统的卖主: " + OSgetVendor());
// 卖主名称
Systemoutprintln(" *** 作系统的卖主名: " + OSgetVendorCodeName());
// *** 作系统名称
Systemoutprintln(" *** 作系统名称: " + OSgetVendorName());
// *** 作系统卖主类型
Systemoutprintln(" *** 作系统卖主类型: " + OSgetVendorVersion());
// *** 作系统的版本号
Systemoutprintln(" *** 作系统的版本号: " + OSgetVersion());
}
private static void who() throws SigarException {
Sigar sigar = new Sigar();
Who who[] = sigargetWhoList();
if (who != null && wholength > 0) {
for (int i = 0; i < wholength; i++) {
// Systemoutprintln("当前系统进程表中的用户名" + StringvalueOf(i));
Who _who = who[i];
Systemoutprintln("用户控制台: " + _whogetDevice());
Systemoutprintln("用户host: " + _whogetHost());
// Systemoutprintln("getTime(): " + _whogetTime());
// 当前系统进程表中的用户名
Systemoutprintln("当前系统进程表中的用户名: " + _whogetUser());
}
}
}
}
以上就是关于如何通过Java的JNA开源项目(库)来读取CPU使用率全部的内容,包括:如何通过Java的JNA开源项目(库)来读取CPU使用率、java获取cpu信息失败、java如何获取远程计算机的系统信息,cpu使用情况,磁盘使用情况等等等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)