F.4411.316.013 - POEJ/MIXTO/F.
Generation/
Curso JAVA (Online-Nacional) 3ªEd.
Java Bootcamp
Eduardo Corral Muñoz
eoi_eduardo@corral.es
Clase System
Índice
_01 La clase System
_02 Propiedades del sistema
_03 Propiedades del entorno
_04 Otros métodos
_05 Ejecutar aplicaciones del SO
01
La clase System
La clase System
La clase System contiene diversos propiedades y métodos que
nos permiten conocer las configuraciones del sistema, manejar
entradas/salidas, …
En el API de Java podemos encontrar todos sus métodos y
propiedades.
No podemos crear objetos de la clase System (new),
No podemos crear clases extendidas a partir de ella
Todos sus métodos son estáticos y se llaman directamente como
System.metodo
02
Propiedades del sistema
La clase System
Obtenemos propiedades una a una con .getProperty()
String usuario = System.getProperty(“user.name”);
String carpeta = System.getProperty(“user.dir”);
String java = System.getProperty(“java.version”);
Obtenemos todas las propiedades con .getProperties()
Properties prop = System.getProperties();
prop.list(System.out);
La clase System
Podemos definir nuevas propiedades directamente en el código.
System.getProperties().list(System.out);
Properties prop = new Properties(System.getProperties());
prop.setProperty(“mi.propiedad”,”valor correspondiente”);
System.setProperties(prop);
System.getProperties().list(System.out);
La clase System
También podemos hacerlo desde un archivo de configuración
(config.properties) con las variables personalizadas que nos interesen
y posteriormente cargarlo.
config.puerto.servidor=8080
config.max.conexiones=25
config.nombre.servidor=miservidor
…
// Leemos el archivo
FileInputStream archivo = new FileInputStream(“src/config.propiedades”);
prop.load(archivo);
System.setProperties(prop);
System.getProperties().list(System.out);
System.out.println(System.getProperty(“config.nombre.servidor”));
03
Propiedades de entorno
Variables de entorno
Todos los sistemas operativos almacenan datos del entrono de
trabajo y su configuración (rutas de acceso a programas, path, …
y muchas otras)
Podemos obtenerlas mediante el método .getenv(), que devuelve
un objeto de tipo mapa (Map), algo parecido a una matriz
asociativa (clave, valor). Esta estructura se conoce también como
diccionario.
Map<String, String> varEnv = System.getenv();
Systema.out.println(“Variables de entrono: “ + varEnv);
Podemos acceder a una variable concreta:
String usuario = System.getenv(“USERNAME”);
String javaHome = System.getenv(“JAVA_HOME”);
Variables de entorno
Podemos también recorrer el mapa
for(String clave:varEnv.keySet()){
System.out.println(clave + “ = “ + varEnv.get(clave);
}
04
Otros métodos
Manejo de errores
En try…catch podemos mostrar los errores en color rojo
…}catch(Exception e){
System.out.println(“no encuentro el archivo: “ + e.getMessage);
System.err.println(“no encuentro el archivo: “ + e.getMessage);
System.exit(1);
}
Liberar memoria
Podemos eliminar todas las instancias que no se están usando para
liberar memoria. Java tiene un recolector de basura (Garbage
collector) pero también se ejecuta de forma automática.
System.gc();
05
Ejecutar aplicaciones
del sistema operativo
Ejecutar aplicación del SO
Runtime rt = Runtime.getRuntime();
Process proceso;
try{
if(System.getProperty(“os.name”.contains(“windows”)){//Mac//Nix
proceso = rt.exec(“notepad”);
}else{ //linux
proceso = rt.exec(“getid”); // mac -> rt.exec(“textedit”);
}
proceso.waitFor();
}catch(Exception e){
System.err.println(“Comando desconocido: “ + e.getMessage());}
System.exit(1);
}
System.out.println(“Editor cerrado”);
System.exit(0);