怎样在Java中得到CPU的使用情况呢?这儿同时有一个好消息和一个坏消息。
坏消息是不能使用纯Java的方法得到CPU的使用。没有这方面的直接的API。一个建议的替代方法是通过Runtime.exec()确定JVM的进程ID(PID),调用外部的、平台相关的命令,例如ps,然后在运行结果中解析出感爱好的PID。但是,这种方法并不理想。
好消息是,可以采用一个更为可靠的方案:跳出Java,写几行C代码,然后通过JNI进行整合。下面我将向你展示编写一个Win32平台的简单的JNI库是多么简单。
一般来说,JNI有点复杂。但是,假如你仅仅单向调用--从Java调用本地代码,并且仅使用基本型进行通讯--事情还是很简单的。有许多JNI方面的学习资料,所以这儿就不介绍JNI的基础了。仅介绍实现步骤。
一、在Java中声明JNI方法
开始,创建一个声明了本地方法的类com.vladium.utils.SystemInformation,该方法返回当前进程已使用的CPU的毫秒数。
public staticnative long getProcessCPUTime();
使用JDK内置的javah工具产生将...[ 查看全文 ]