[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
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
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");
}
}
17 Comentarios | deja el tuyo




parse lo compile en textpad y no me corrio, me salio una advertencia que decia algo “decrecated” algo asi
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!
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.
Pues si entendí lo que deseas,sí. Es necesario pasar como parámetro el objeto.
Con las que usan System.getenv(); me devuelve null. T_T
@Ramc : se puede deber al SO que uses y al usuario con el que ejecutes el programa.
Utilizo Debian y también lo corri como root y nada T_T
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!
Si, efectivamente con esa si funciona
y viendo en /etc/environment
tampoco hay algunas que se le parezcan
hay aguna funcion parecida que me devuelva el serial number de mother o procesador???
hola, me pasa lo mismo que Ramc
@Cristian, cómo lo puedo arreglar???
¿qué sistema operativo usas?
Fedora 10
al fin, me he encontrado lo que necesitaba… gracias…
a Garusis
gracias por compartir tus conocimientos a quienes te ayudaron…
saludos