如何使用Java获取Ram的大小和硬盘大小?

如何使用Java获取PC的Ram大小和硬盘大小? 是否可以通过Java在PC上获取当前登录的用户名?

磁盘大小:

long diskSize = new File("/").getTotalSpace(); 

用户名:

 String userName = System.getProperty("user.name"); 

我不知道用Java确定总系统内存的可靠方法。 在Unix系统上,你可以解析/proc/meminfo 。 您当然可以找到JVM可用的最大内存:

 long maxMemory = Runtime.getRuntime().maxMemory(); 

编辑:为了完整性(感谢Suresh S),这里是一种仅使用Oracle JVM获取总内存的方法:

 long memorySize = ((com.sun.management.OperatingSystemMXBean) ManagementFactory .getOperatingSystemMXBean()).getTotalPhysicalMemorySize(); 

对于Ram Size,如果您使用的是java 1.5

java.lang.management包

 com.sun.management.OperatingSystemMXBean mxbean = (com.sun.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); System.out.println(mxbean.getTotalPhysicalMemorySize() + " Bytes "); 
 import java.lang.management.*; import java.io.*; class max { public static void main(String... a) { long diskSize = new File("/").getTotalSpace(); String userName = System.getProperty("user.name"); long maxMemory = Runtime.getRuntime().maxMemory(); long memorySize = ((com.sun.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean()).getTotalPhysicalMemorySize(); System.out.println("Size of C:="+diskSize+" Bytes"); System.out.println("User Name="+userName); System.out.println("RAM Size="+memorySize+" Bytes"); } } 

看看这个主题 ,详细介绍如何获取此类操作系统信息。