Para los conocedores de C, la función getenv de la stdlib es una función de mucha utilidad para obtener información acerca del entorno donde se ejecute el proceso y/o aplicación. getenv, es una función que devuelve el valor de una determinada variable de entorno pasando el nombre de la misma como parámetro.

En Java, la clase System dispone de un método getenv, idéntico al conocido en C. Mediante este método se puede acceder a variables de entorno del sistema.

Sin embargo, el método getenv es obsoleto y probablemente el compilador nos muestre algún warning al momento de compilar. Por tal motivo, más de una vez debemos utilizar el método getProperty para "lograr el mismo efecto".

La razón por la cual getenv es obsoleto se debe a que el concepto de "variable de entorno" no es portable. Es decir, no existe ninguna garantía que los Sistemas Operativos soporten las mismas variables de entorno.

A continuación, un breve ejemplo de lo hablado (ten en cuenta lo que dije acerca de las variables de entorno leídas con getenv):

class MyComputerInfo {

    public static void main(String args[]) {
       System.out.println("PC name..........: " + pcName());
       System.out.println("User name........: " + userName());
       System.out.println("Processor........: " + procesadorInfo());
       System.out.println("Operating System.: " + osInfo());
       System.out.println("JDK version......: " + jdkVersion());
    }

    public static String pcName() {
       return System.getenv("COMPUTERNAME");
    }
   
    public static String userName() {
       return System.getProperty("user.name");
    }
       
    public static String procesadorInfo() {
       return System.getenv("PROCESSOR_IDENTIFIER");
    }
   
    public static String osInfo() {
         return System.getProperty("os.name");
    }
   
    public static String jdkVersion() {
         return System.getProperty("java.version");     
    }
   
}

Vía: El blog de Casidiablo