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

如何使用Java获取Ram大小和硬盘大小?,java,Java,如何使用Java获取PC的Ram大小和硬盘大小?是否可以通过java在PC上获取当前登录的用户名?磁盘大小: long diskSize = new File("/").getTotalSpace(); 用户名: String userName = System.getProperty("user.name"); 我不知道用Java来确定系统内存总量的可靠方法。在Unix系统上,您可以解析/proc/meminfo。当然,您可以找到JVM可用的最大内存: long maxMemory = R

如何使用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();

请看一下,它详细介绍了如何获取这样的操作系统信息。

如果您使用的是java 1.5

java.lang.management包

com.sun.management.OperatingSystemMXBean mxbean = (com.sun.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
System.out.println(mxbean.getTotalPhysicalMemorySize() + " Bytes "); 

相关:+1不知道这一点,但值得注意的是,这是针对Oracle JVM的。我发现这对于审计目的非常有用(例如,记录谁做了什么,例如,我将其传递到RMI调用),但它不是非常安全。“仅Oracle JVM”是不正确的,从JDK 1.8开始,这是一种JDK。导出类型,请参阅磁盘大小是指驱动器大小,而不是,物理磁盘。
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");
   }
}