[Metodos] Determinar Sistema y propiedades

La Clase System de Java

Una de las mayores ventajas de java es que es multiplaforma, es decir corre sobre una maquina virtual que esta disponible para varios sistemas operativos.
Pero trabajar con varios sistemas tiene sus pequeñas diferencias, como por ejemplo las rutas especifícas de archivos:

  • en windows son "C:\user\texto.txt"
  • en linux son "\user\docs\texto.txt"
  • etc

Para determinar que sistema operativo se esta usando, podemos hacer uso del metodo:

  • public static String getProperty(String key)
  • Obtiene la propiedad del sistema indicada por el argumento especificado en el parametro.
    En primer lugar, si hay un controlador de seguridad, su método checkPropertyAccess() se llamará con el valor del parámetro como su propio argumento. Esto puede resultar en un SecurityException.
    Si no hay un conjunto actual de las propiedades del sistema, estas se crearán por primera vez y se inicializa de la misma manera que para el método getProperties().
  • Parámetros:
  • String key - Cadena de texto con el valor de una de las propiedades que queremos solicitar.
  • Devuelve:
  • String - Otra cadena de texto con el valor de la propiedad.
  • Arroja:
  • SecurityException - si existe un administrador de seguridad y su método checkPropertyAccess no permite el acceso a la propiedad del sistema especificado.
    NullPointerException - si la clave es nula.
    IllegalArgumentException - si la clave está vacía.
    NOTA: Hemos de notar que la firma por si sola no arroja excepciones, sino las llamadas en su interior las provocan, no es necesario tratarlas con un try-cath

Para mostrar por pantalla cual es la version del sistema operativo que estamos usando bastará con:

1
2
String sistemaOperativo = System.getProperty("os.name");
System.out.println(sistemaOperativo);

Para guardar por ejemplo un archivo de texto, dependiendo del sistema operativo podriamos hacer:(Solo funciona para windows y linux)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
String osName = System.getProperty("os.name");
String rutaEspecifica;

if(osName.contains("Windows")){
    rutaEspecifica = "C:/blog/texto.txt"
}else{
    rutaEspecifica = "/usr/texto.txt"
}

LeerEscribir.guardarTXT(props2String(), rutaEspecifica);

El método guardarTXT lleva como primer parámetro el texto a guardar, y su segundo es la ruta donde lo deja finalmente. El método props2String() lo defeni siguiendo las 28 de propiedades que nos brinda la documentacion oficial de Java:

java.version Version del JRE (Java Runtime Environment)
java.vendor Fabricante de la JRE
java.vendor.url Enlace web del fabricante de la JRE
java.home Direccion de instalación de Java
java.vm.specification.version Versión especifica de la JMV
java.vm.specification.vendor Nombre especifico del fabricante de la JMV
java.vm.specification.name Nombre especifico de la JMV
java.vm.version Version de implementación de la JMV
java.vm.vendor Nombre del fabricante de la implementación de la JMV
java.vm.name Nombre de la implementación de la JMV
java.specification.version Versipon específica de JRE
java.specification.vendor Nombre especifico del fabricante
java.specification.name nombre de la especificacion de java
java.class.version Numero de version del formato de clase
java.class.path ruta de la clase de java
java.library.path Lista de ruta para buscar cuando se cargan librerias
java.io.tmpdir Ruta por defecto para archivos temporales
java.compiler Version del compilador java
java.ext.dirs Ruta de extensión de directorio, o de directorios
os.name Nombre del sistema
os.arch Arquitectura del sistema
os.version Versión del sistema
file.separator Separador de archivos(Gral / o \ )
path.separator Separador de rutas(Gral . o ; )
line.separator Separador de lineas (Gral \n )
user.name Nombre de usuario
user.home Directorio raiz del usuario
user.dir Directorio de trabajo actual del usuario.



No hay comentarios:

Publicar un comentario