java怎样获取cpu主频和使用率?需要用jni,但小弟对c语言底子薄,希望你能给一个做好的例子,参考一下!

解决方案 »

  1.   

    获取使用率到没听说过,获取主频可以调用Dos命令实现/**
     * 执行一个有标准输出的DOS可执行程序
     * 
     * @param command
     *            具有输出的cmd命名
     */
    public static String execDOStoOutPut(String command) {
    String result = "";
    InputStream is = null;
    InputStreamReader ir = null;
    BufferedReader bufferedReader = null;
    try {
    Process process = Runtime.getRuntime().exec("cmd /c " + command);
    // 创建一个使用默认大小输入缓冲区的缓冲字符输入流
    is = process.getInputStream();
    ir = new InputStreamReader(is);
    bufferedReader = new BufferedReader(ir);
    String temp;
    while ((temp = bufferedReader.readLine()) != null) {
    result += temp;
    System.out.println(temp);
    }
    process.waitFor();
    } catch (InterruptedException ex) {
    System.out.println(ex.getMessage());
    } catch (IOException ex) {
    System.out.println(ex.getMessage());
    } finally {
    try {
    bufferedReader.close();
    ir.close();
    is.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    return result;
    这是使用方法 public static void main(String[] args) {
    ExecDOS dos = new ExecDOS();
    dos.execDOStoOutPut("systeminfo");
    }
    systeinfo是dos命令,返回系统的一些信息,包括cpu的信息
      

  2.   

    非常感谢lowson0,但是如果我只想得到cpu主频的值的话,应该用什么命令可以得到?
      

  3.   

    可以通过JNI调用动态库获得。
      

  4.   

    这里有写好的,为何你不去找找呢?给你一个写好的,java通过jni查看cpu利用率:http://huangpengxiao.javaeye.com/blog/96670
      

  5.   

    3楼正解。可以通过jni掉其他接口获得。
      

  6.   

    JAVA通过JNI获得CPU的使用率(Usage Rate)我整理的,能用

      

  7.   

    java2000_net:这个例子我测试了一下,有debug。 
      

  8.   

    谢谢各位!cpu和内存的使用率已经可以得到,主频还是没有办法得到!
      

  9.   

    主频可以通过查注册表HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0\~MHz找到。
      

  10.   

    一般都是有这个键值的,如果没有的话,没办发了,只能在JNI程序中嵌入汇编程序了。
      

  11.   

    问题已经解决,是用jni搞定的。