Java System Properties
DOMANDA:
In Java si possono ricavare le proprietà di sistema a runtime?
RISPOSTA:
Per personalizzare a runtime i programmi, evitare di scrivere codice non multipiattaforma o semplicemente ricavare le informazioni specifiche di un calcolatore è necessario conoscere la possibilità fornita da Java di recuperare i dettagli del sistema su cui è in esecuzione il nostro programma.
Le possibilità offerte dalle Java System Properties sono quelle elencate nella seguente tabella:
| System property | Descrizione |
| java.version | Versione Java Runtime Environment (JRE) |
| java.vendor | Fornitore Java Runtime Environment (JRE) |
| java.vendor.url | URL fornitore Java |
| java.home | Directory di installazione Java |
| java.vm.specification.version | Versione delle specifiche della Java Virtual Machine |
| java.vm.specification.vendor | Fornitore delle specifiche della Java Virtual Machine |
| java.vm.specification.name | Nome delle specifiche della Java Virtual Machine |
| java.vm.version | Versione dell'implementazione della Java Virtual Machine |
| java.vm.vendor | Fornitore dell'implementazione della Java Virtual Machine |
| java.vm.name | Nome dell'implementazione della Java Virtual Machine |
| java.specification.version | Versione delle specifiche del Java Runtime Environment (JRE) |
| java.specification.vendor | Fornitore delle specifiche del Java Runtime Environment (JRE) |
| java.specification.name | Nome delle specifiche del Java Runtime Environment (JRE) |
| java.class.version | Numero della versione del formato delle classi Java |
| java.class.path | Class Path di Java |
| java.library.path | Lista dei path dove ricerare le librerie |
| java.io.tmpdir | Path dei file temporanei predefinito |
| java.compiler | Nome del compilatore Just In Time (JIT) da utilizzare |
| java.ext.dirs | Path of extension directory or directories |
| os.name | Nome del Sistema Operativo |
| os.arch | Architettura del Sistema Operativo |
| os.version | Versione del Sistema Operativo |
| file.separator | Separatore dei file ('/' per UNIX, '\' per Windows) |
| path.separator | Separatore di path (':' on UNIX, ';' per Windows) |
| line.separator | Separatore di linea (newline) ('\n' on UNIX) |
| user.name | Nome dell'account utente |
| user.home | Directory home dell'utente |
| user.dir | Directory corrente dell'utente |
Il seguente esempio mostra, una per una, le proprietà elencate nella tabella precedente:
package systemproperties;
public class ProprietaDiSistema {
public static void main(String[] args) {
System.out.print("Versione Java Runtime Environment (JRE): ");
System.out.println(System.getProperty("java.version"));
System.out.print("Fornitore Java Runtime Environment (JRE): ");
System.out.println(System.getProperty("java.vendor"));
System.out.print("URL fornitore Java: ");
System.out.println(System.getProperty("java.vendor.url"));
System.out.print("Directory di installazione Java: ");
System.out.println(System.getProperty("java.home"));
System.out.print("Versione delle specifiche della Java Virtual Machine: ");
System.out.println(System.getProperty("java.vm.specification.version"));
System.out.print("Fornitore delle specifiche della Java Virtual Machine: ");
System.out.println(System.getProperty("java.vm.specification.vendor"));
System.out.print("Nome delle specifiche della Java Virtual Machine: ");
System.out.println(System.getProperty("java.vm.specification.name"));
System.out.print("Versione dell'implementazione della Java Virtual Machine: ");
System.out.println(System.getProperty("java.vm.version"));
System.out.print("Fornitore dell'implementazione della Java Virtual Machine: ");
System.out.println(System.getProperty("java.vm.vendor"));
System.out.print("Nome dell'implementazione della Java Virtual Machine: ");
System.out.println(System.getProperty("java.vm.name"));
System.out.print("Versione delle specifiche del Java Runtime Environment (JRE): ");
System.out.println(System.getProperty("java.specification.version"));
System.out.print("Fornitore delle specifiche del Java Runtime Environment (JRE): ");
System.out.println(System.getProperty("java.specification.vendor"));
System.out.print("Nome delle specifiche del Java Runtime Environment (JRE): ");
System.out.println(System.getProperty("java.specification.name"));
System.out.print("Numero della versione del formato delle classi Java: ");
System.out.println(System.getProperty("java.class.version"));
System.out.print("Class Path di Java: ");
System.out.println(System.getProperty("java.class.path"));
System.out.print("Lista dei path dove ricerare le librerie: ");
System.out.println(System.getProperty("java.library.path"));
System.out.print("Path dei file temporanei predefinito: ");
System.out.println(System.getProperty("java.io.tmpdir"));
System.out.print("Nome del compilatore Just In Time (JIT) da utilizzare: ");
System.out.println(System.getProperty("java.compiler"));
System.out.print("Path of extension directory or directories: ");
System.out.println(System.getProperty("java.ext.dirs"));
System.out.print("Nome del Sistema Operativo: ");
System.out.println(System.getProperty("os.name"));
System.out.print("Architettura del Sistema Operativo: ");
System.out.println(System.getProperty("os.arch"));
System.out.print("Versione del Sistema Operativo: ");
System.out.println(System.getProperty("os.version"));
System.out.print("Separatore dei file: ");
System.out.println(System.getProperty("file.separator"));
System.out.print("Separatore di path: ");
System.out.println(System.getProperty("path.separator"));
System.out.print("Separatore di linea (newline): ");
System.out.println(System.getProperty("line.separator"));
System.out.print("Nome dell'account utente: ");
System.out.println(System.getProperty("user.name"));
System.out.print("Directory home dell'utente: ");
System.out.println(System.getProperty("user.home"));
System.out.print("Directory corrente dell'utente: ");
System.out.println(System.getProperty("user.dir"));
}
}
E i relativi output lanciandolo sul mio sistema attuale (Windows 7 + Java 7):
Versione Java Runtime Environment (JRE): 1.7.0_07
Fornitore Java Runtime Environment (JRE): Oracle Corporation
URL fornitore Java: http://java.oracle.com/
Directory di installazione Java: C:\Program Files\Java\jre7
Versione delle specifiche della Java Virtual Machine: 1.7
Fornitore delle specifiche della Java Virtual Machine: Oracle Corporation
Nome delle specifiche della Java Virtual Machine: Java Virtual Machine Specification
Versione dell'implementazione della Java Virtual Machine: 23.3-b01
Fornitore dell'implementazione della Java Virtual Machine: Oracle Corporation
Nome dell'implementazione della Java Virtual Machine: Java HotSpot(TM) 64-Bit Server VM
Versione delle specifiche del Java Runtime Environment (JRE): 1.7
Fornitore delle specifiche del Java Runtime Environment (JRE): Oracle Corporation
Nome delle specifiche del Java Runtime Environment (JRE): Java Platform API Specification
Numero della versione del formato delle classi Java: 51.0
Class Path di Java: C:\Users\MioUser\Desktop\workspace\Blog\bin;
Lista dei path dove ricerare le librerie: C:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Windows\system32;C:\Windows;.
Path dei file temporanei predefinito: C:\Users\MioUser\AppData\Local\Temp\
Nome del compilatore Just In Time (JIT) da utilizzare: null
Path of extension directory or directories: C:\Program Files\Java\jre7\lib\ext;C:\Windows\Sun\Java\lib\ext
Nome del Sistema Operativo: Windows 7
Architettura del Sistema Operativo: amd64
Versione del Sistema Operativo: 6.1
Separatore dei file: \
Separatore di path: ;
Separatore di linea (newline):
Nome dell'account utente: MioUser
Directory home dell'utente: C:\Users\MioUser
Directory corrente dell'utente: C:\Users\MioUser\Desktop\workspace\Blog
Fornitore Java Runtime Environment (JRE): Oracle Corporation
URL fornitore Java: http://java.oracle.com/
Directory di installazione Java: C:\Program Files\Java\jre7
Versione delle specifiche della Java Virtual Machine: 1.7
Fornitore delle specifiche della Java Virtual Machine: Oracle Corporation
Nome delle specifiche della Java Virtual Machine: Java Virtual Machine Specification
Versione dell'implementazione della Java Virtual Machine: 23.3-b01
Fornitore dell'implementazione della Java Virtual Machine: Oracle Corporation
Nome dell'implementazione della Java Virtual Machine: Java HotSpot(TM) 64-Bit Server VM
Versione delle specifiche del Java Runtime Environment (JRE): 1.7
Fornitore delle specifiche del Java Runtime Environment (JRE): Oracle Corporation
Nome delle specifiche del Java Runtime Environment (JRE): Java Platform API Specification
Numero della versione del formato delle classi Java: 51.0
Class Path di Java: C:\Users\MioUser\Desktop\workspace\Blog\bin;
Lista dei path dove ricerare le librerie: C:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Windows\system32;C:\Windows;.
Path dei file temporanei predefinito: C:\Users\MioUser\AppData\Local\Temp\
Nome del compilatore Just In Time (JIT) da utilizzare: null
Path of extension directory or directories: C:\Program Files\Java\jre7\lib\ext;C:\Windows\Sun\Java\lib\ext
Nome del Sistema Operativo: Windows 7
Architettura del Sistema Operativo: amd64
Versione del Sistema Operativo: 6.1
Separatore dei file: \
Separatore di path: ;
Separatore di linea (newline):
Nome dell'account utente: MioUser
Directory home dell'utente: C:\Users\MioUser
Directory corrente dell'utente: C:\Users\MioUser\Desktop\workspace\Blog
NOTA: il separatore di linea non viene stampato a video in chiaro (avrebbe dovuto stampare \n o \n\r) ma, ovviamente, ne vediamo gli effetti, cioè l'inserimento di una nuova riga!
Se volessimo recuperarle tutte contemporaneamente basta semplicemente:
package systemproperties;
public class ProprietaDiSistema {
public static void main(String[] args) {
System.out.println(System.getProperties());
}
}
L'output sarà l'insieme di tutte le System Properties disponibili.

Commenti
Posta un commento