linux 和 windows 

解决方案 »

  1.   

    利用System类的方法可以查询系统信息,File类提供了查询磁盘空间信息。你说的硬件信息是指什么?
      

  2.   

    要获取硬件信息,貌似要用jni别的很难获取。
      

  3.   

    内存可以知道容量和使用量
    网卡 http://topic.csdn.net/t/20021112/09/1168460.html runtime类执行ipconfig
      

  4.   

    获取内存信息:com.sun.management.OperatingSystemMXBean operatingSystemMXBean = (com.sun.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
    operatingSystemMXBean.getTotalPhysicalMemorySize();
    获取 CPU 核数(并非 CPU 个数):
    Runtime.getRuntime().availableProcessors()
      

  5.   

    com.sun.management.OperatingSystemMXBean 不建议使用。所以你要慎用啊。
      

  6.   

    Runtime.exec();调系统命令,比如AIX里面prtconf,lsdev...JVM是跨平台的,直接用java来获取平台信息是不现实的,JDK不关心底层硬件信息
      

  7.   

    网卡可以用NetworkInterface.getHardwareAddress() java1.6提供的。
      

  8.   

    有个开源项目叫hyperic-sigar,可以获取一些信息
      

  9.   

    try {
    InetAddress address = InetAddress.getLocalHost();
    NetworkInterface netCard = NetworkInterface
    .getByInetAddress(address);
    byte[] addr = netCard.getHardwareAddress(); StringBuffer sb = new StringBuffer();
    for (int i = 0; i < addr.length; i++) {
    if (addr[i] != 0) {
    sb.append("-");
    } String string = Integer.toHexString(addr[i] & 0xff);
    sb.append(string.length() == 1 ? "0" + string : string);
    } System.out.println(sb.toString().toUpperCase());
    } catch (SocketException e) {
    e.printStackTrace();
    } catch (UnknownHostException e) {
    e.printStackTrace();
    }