La clase System utiliza un objeto de tipo Properties para
tener la información relacionada con el entorno de trabajo actual. Esta
información incluye el separador de las rutas de los directorios, el directorio de trabajo del usuario, la
versión de Java, etc.
Estas propiedades pueden ser leídas y escritas, mediante
métodos get y set. Por ejemplo para obtener el nombre del sistema operativo,
tendríamos que pasarle al método get, la cadena “os.name”, de esta forma:
System.getProperty(“os.name”);
La siguiente tabla muestra las posibles claves y su
significado:
Clave
|
Significado
|
"file.separator"
|
Carácter
separador de las rutas de los ficheros. Por ejemplo "/" en Linux y "\" en Windows.
|
"java.class.path"
|
Ruta usada
para buscar clases compiladas .class o paquetes .jar.
|
"java.home"
|
Directorio
de instalación del Java Runtime
Environment (JRE)
|
"java.vendor"
|
Nombre del
distribuidor del JRE
|
"java.vendor.url"
|
URL del
distribuidor del JRE
|
"java.version"
|
Número de
versión del JRE
|
"line.separator"
|
Secuencia de
caracteres usada por el SO como separador de líneas de los ficheros de texto
|
"os.arch"
|
Arquitectura
del sistema operativo
|
"os.name"
|
Nombre del
sistema operativo
|
"os.version"
|
Versión
del sistema operativo
|
"path.separator"
|
Carácter utilizado
para separar las rutas en java.class.path
|
"user.dir"
|
Directorio
de trabajo del usuario
|
"user.home"
|
Directorio
home del usuario
|
"user.name"
|
Nombre de
la cuenta de usuario
|
Algunos de estos valores también se pueden obtener mediante
File. El separador de rutas se puede obtener con File.pathSeparator (devuelve
un String) o File.pathSeparatorChar (devuelve un char). El separador de
ficheros se obtiene con File.separator (devuelve String) y con
File.separatorChar (devuelve char).
Estas propiedades nos ayudarán a que el código desarrollado
pueda ser multiplataforma, aunque no siempre es fácil, ya que por ejemplo no
todos los sistemas operativos utilizan el mismo nombre para el escritorio: en
unos casos es “Desktop” en otros “Escritorio”. Algo como:
String
ruta=
System.getProperty("user.home")+File.separator+"Desktop"+File.separator+”fichero.txt”
no siempre sería válido. Habría que verificarlo y mediante
comprobaciones del nombre del sistema operativo, determinar con condiciones la
ruta.