2011-04-01 4 views

Répondre

21

taille du disque:

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

Nom d'utilisateur:

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

Je ne suis pas au courant d'un moyen fiable pour déterminer la mémoire totale du système en Java. Sur un système Unix, vous pouvez analyser /proc/meminfo. Vous pouvez bien sûr trouver la mémoire maximale disponible pour la machine virtuelle Java:

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

Edit: pour être complet (merci Suresh S), voici un moyen de mémoire totale avec la seule machine virtuelle Java Oracle:

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

+1: BTW Vous pouvez définir '-Duser.name = AUser';) –

+1

@Peter: ah oui, bon point. – WhiteFang34

+0

Je trouve cela très utile à des fins d'audit (c'est-à-dire en enregistrant qui a fait quoi, par exemple, je le passe en appels RMI), mais ce n'est pas très sécurisé. –

2

Jetez un oeil à this topic, qui va dans le détail de la façon d'obtenir des informations OS telles que celle-ci.

5

Pour Taille Ram, si vous utilisez java 1,5

package java.lang.management

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

+1 ne le savait pas, bien qu'il soit à noter qu'il est spécifique à Oracle JVM. – 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"); 
    } 
} 
Questions connexes