Java获得内存使用,磁盘情况

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

  import java.io.File;

  /**

  *

  * jdk6.0下的磁盘使用情况例子

  */

  public class Diskfree {

  public static void main(String[] args) {

  File[] roots = File.listRoots();//获取磁盘分区列表

  for (File file : roots) {

  System.out.println(file.getPath()+”信息如下:”);

  System.out.println(“空闲未使用 = ” + file.getFreeSpace()/1024/1024/1024+”G”);//空闲空间

  System.out.println(“已经使用 = ” + file.getUsableSpace()/1024/1024/1024+”G”);//可用空间

  System.out.println(“总容量 = ” + file.getTotalSpace()/1024/1024/1024+”G”);//总空间

  System.out.println();

  }

  }

  }

  java获得当前系统内存情况的代码如下:

  Java code

  import java.lang.management.ManagementFactory;

  import com.sun.management.OperatingSystemMXBean;

  public class OSTest {

  public static void main(String[] args)

  {

  OperatingSystemMXBean osmb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();

  System.out.println(“系统物理内存总计:” + osmb.getTotalPhysicalMemorySize() / 1024/1024 + “MB”);

  System.out.println(“系统物理可用内存总计:” + osmb.getFreePhysicalMemorySize() / 1024/1024 + “MB”); }

  }

  ManagementFactory.getOperatingSystemMXBean()返回的是java.lang.management里面的OperatingSystemMXBean ;

  我们要用的是com.sun.management.OperatingSystemMXBean;

  在java类库中可以查到:

  public abstract Interface com.sun.management.OperatingSystemMXBean extends java.lang.management.OperatingSystemMXBean

  所以我们可以强制转换一下。

  想得到磁盘使用情况的话,可以看3楼的例子,要得到系统信息的话,使用System.getProperty(String key);

  方法。

  1. 内存使用可以使用Runtime.getRuntime().getTotalMemory() – Runtime.getRuntime().getFreeMemory()

  2. 纯JAVA是不能同操作系统打交到得,比如你要看CPU使用率,一般就是使用JNI技术(一些简单得系统熟悉,可以通过System.getProperties()获得)

  3. JNI技术,涉及到不同操作系统提供得API,我只知道Windows下得API,好像是NT开头得一个函数用于查看系统信息,包括CPU使用率

你并不一定会从此拥有更美好的人生,

Java获得内存使用,磁盘情况

相关文章:

你感兴趣的文章:

标签云: