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