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. |