2011-04-01 21 views

cevap

21

Disk boyutu:

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

Kullanıcı adı:

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

Java toplam sistem belleği belirlemek için güvenilir bir yol farkında değilim. Bir Unix sisteminde /proc/meminfo'u ayrıştırabilirsiniz. Sen elbette JVM için kullanılabilir maksimum bellek bulabilirsiniz:

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

Düzenleme: şeyiyle (teşekkürler Suresh S), burada sadece Oracle JVM ile toplam hafızayı almanın bir yolu var:

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

+1: BTW '-Duser.name = AUser';) –

+1

@Peter: ah evet, iyi bir nokta ayarlayabilirsiniz. – WhiteFang34

+0

Denetim amaçları için çok yararlı buluyorum (örneğin, RMI çağrılarına iletenleri kimin yaptığını günlüğe kaydetme), ancak çok güvenli değil. –

2

this topic'a bir göz atın, bu şekilde nasıl işletim sistemi bilgilerinin alınacağı ayrıntıya girer.

Ram Boyutu için
5

, sen java kullanıyorsanız 1,5

java.lang.management paketi

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

+1 bunu bilmiyordu, ancak Oracle JVM'ye özgü olduğunu belirtti. – WhiteFang34

4
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"); 
    } 
} 
İlgili konular