gentoo linux, java, software libre y otras hierbas
sep, 20 2008 - 12:01 am

[código] Obtener variables de entorno e información del sistema con Java

El siguiente es un pequeño programa que usando el método getenv de la clase System, devuelve información del sistema operativo y de las variables de entorno. La salida del mismo es algo como esto:

$ java InfoCompu
Nombre del PC: alienxp
Nombre usuario: cristian
Procesador: x86 Family 15 Model 4 Stepping 1, GenuineIntel
Sistema operativo: Ubuntu 8.04 Hardy Heron
Version JDK: 1.6.0_01
Directorio actual: /home/cristian
> java InfoCompu
Nombre del PC: winxp
Nombre usuario: ccasti
Procesador: x86 Family 15 Model 4 Stepping 1, GenuineIntel
Sistema operativo: Windows XP
Version JDK: 1.5.0
Directorio actual: c:\Documents and Settings\ccasti\Desktop

El código…

class InfoCompu
{
    public static void main(String args[])
    {
       System.out.println("Nombre del PC: " + nombrePC());
       System.out.println("Nombre usuario: " + usuario());
       System.out.println("Procesador: " + procesador());
       System.out.println("Sistema operativo: " + SO());
       System.out.println("Version JDK: " + JDK());
       System.out.println("Directorio actual: " + dir());
    }
    public static String nombrePC()
    {
       return System.getenv("COMPUTERNAME");
    }
    public static String usuario()
    {
       return System.getProperty("user.name");
    }
    public static String procesador()
    {
       return System.getenv("PROCESSOR_IDENTIFIER");
    }
    public static String SO()
    {
         return System.getProperty("os.name");
    }
    public static String JDK()
    {
         return System.getProperty("java.version");
    }
    public static String dir()
    {
       return System.getProperty("user.dir");
    }
}

Descargar código

28 Comentarios | deja el tuyo

2 enlaces entrantes

26 Comentarios en “[código] Obtener variables de entorno e información del sistema con Java”

  1. exactlimon dice:

    parse lo compile en textpad y no me corrio, me salio una advertencia que decia algo “decrecated” algo asi

  2. Cristian dice:

    exclaminton: aún cuando aparezca eso puedes ejecutarlo. Lo que pasa es que la versión de tu JRE puede ser bastante nueva, y las funciones pudieron pasar al estado deprecated.

    Un saludo!

  3. Lopes dice:

    Buenas! Una pregunta que seguramente esta fuera del tema. Si en un programa con varias clases quiero que todas las clases hagan uso de un mismo objeto o variable, mi única solución es passar ese objeto como parametro a todas las clases? (por ejemplo quiero que las clases impriman información sólo si es verdadera una variable booleana llamada debug)
    Muchas gracias.

  4. Cristian dice:

    Pues si entendí lo que deseas,sí. Es necesario pasar como parámetro el objeto.

  5. Ramc dice:

    Con las que usan System.getenv(); me devuelve null. T_T

  6. Cristian dice:

    @Ramc : se puede deber al SO que uses y al usuario con el que ejecutes el programa.

  7. Ramc dice:

    Utilizo Debian y también lo corri como root y nada T_T

  8. Cristian dice:

    OK, entonces ya creo saber lo que sucede. Con dicha función lo que se hace es leer directamente sobre las variables de entorno, pero para estar más seguros porque no cambias temporalmente alguna de las instrucciones por esto:

    return System.getenv(“HOME”);

    Si funciona, y retorna la ruta de tu home, quiere decir que las otras variables no están definidas. Por lo que tendrás que hacer los ajustes necesarios al programa.

    Un saludo!

  9. Ramc dice:

    Si, efectivamente con esa si funciona :) y viendo en /etc/environment
    tampoco hay algunas que se le parezcan :(

  10. nito dice:

    hay aguna funcion parecida que me devuelva el serial number de mother o procesador???

  11. angelfqc dice:

    hola, me pasa lo mismo que Ramc :(

    @Cristian, cómo lo puedo arreglar???

  12. Cristian dice:

    ¿qué sistema operativo usas?

  13. Garusis dice:

    al fin, me he encontrado lo que necesitaba… gracias…

  14. Nahuel dice:

    a Garusis
    gracias por compartir tus conocimientos a quienes te ayudaron…
    saludos

¡Déjanos tu comentario!