Les programmes Java ne peuvent lire les variables d'environnement de la même manière que le peuvent les programmes natifs. La raison est que les variables d'environnement sont dépendantes de la plateforme. Cependant, des mécanismes similaires existent afin de permettre aux applications de lire la valeur d'une ressource nommée.
Ces valeurs de ressources permettent une personnalisation du comportement d'une application basée sur des paramètres de sites spécifiques, tel que le type de l'hôte ou basée sur des préférences utilisateurs.
Les valeurs de ressource désignées sont spécifiées pour les applications dans la liste des propriétés système. Les applications peuvent lire les propriétés systèmes avec la méthode System.getProperty() ou peut lire la liste entière avec la méthode System.getProperties().
//retourne l'encodage de caractères //de la machine (ex.: Cp1252 ou 8859_2). String encodage = System.getProperty("file.encoding");
//Retourne une liste des propriétés systèmes Properties proprietes = System.getProperties(); Enumeration nomProprietes = proprietes.propertyNames(); Object nom = nomProprietes.nextElement(); String valeur = proprietes.getProperty((String)nom);
Lorsque l'interpréteur Java démarre, il insère un nombre de propriétés standards à l'intérieur de la liste des propriétés systèmes. Ces propriétés et la signfication de leurs valeurs sont présentées dans le tableau ci-dessous.
Nom | Valeur | Accès Applet |
---|---|---|
java.version | représente la version de l'interpréteur Java. | oui |
java.vendor | représente l'identificateur spécifique au vendeur. | oui |
java.vendor.url | représente l'adresse URL du vendeur. | oui |
java.class.version | représente la version de l'API Java. | oui |
java.class.path | représente la valeur du répertoire de classe classpath. | non |
java.home | représente le chemin vers le répertoire d'installation de Java. | non |
java.compiler | représente le compilateur JIT (Just In Time) utilisable. | non |
os.name | représente le nom du système d'exploitation. | oui |
os.arch | représente l'architecture matériel de la machine hôte. | oui |
os.version | représente la version du système d'exploitation de la machine hôte. | oui |
file.separator | représente le terminateur de fichier à l'image de / ou \. | oui |
path.separator | représente le séparateur de chemin dépendant de la plateforme sous-jacente tel que : ou ;. | oui |
line.separator | représente le terminateur de ligne tel que \n ou \r\n. | oui |
user.name | représente le nom de l'utilisateur courant. | non |
user.home | représente le répertoire racine de l'utilisateur courant. | non |
user.dir | représente le répertoire de travail courant. | non |
user.language | représente le code du langage par défaut sous la forme d'une chaîne de caractères de deux lettres. | non |
user.region | représente le code de région par défaut sous la forme d'une chaîne de caractères de deux lettres. | non |
user.timezone | représente la zone horaire par défaut. | non |
file.encoding | représente l'encodage de caractères par défaut. | non |
file.encoding.pkg | représente le paquetage qui contient les convertisseurs entre les encodage locaux et l'Unicode. | non |
Résultats sur une machine Windows 2000import java.util.*; public class Proprietes { public static void main(String[] args) { Properties proprietes = System.getProperties(); Enumeration noms = proprietes.propertyNames(); Vector tabObj = new Vector(); Object nom; while((nom = getElements(noms)) != null){ tabObj.add(nom); } for(int i = 0; i < tabObj.size(); i++){ System.out.println (tabObj.elementAt(i) + "\t\t\t:\t" + proprietes.getProperty((String)tabObj.elementAt(i))); } } public static Object getElements(Enumeration enum){ try{ return enum.nextElement(); } catch(NoSuchElementException e){ return null; } } }
java.runtime.name | |
---|---|
Java(TM) 2 Runtime Environment, Standard Edition | |
sun.boot.library.path | |
C:\JavaTools\j2sdk1.4.0\jre\bin | |
java.vm.version | |
1.4.0-b92 | |
java.vm.vendor | |
Sun Microsystems Inc. | |
java.vendor.url | |
http://java.sun.com/ | |
path.separator | |
; | |
java.vm.name | |
Java HotSpot(TM) Client VM | |
file.encoding.pkg | |
sun.io | |
user.country | |
FR | |
sun.os.patch.level | |
Service Pack 2 | |
java.vm.specification.name | |
Java Virtual Machine Specification | |
user.dir | |
D:\Usr\Exercices\Database\colHashtable\classes | |
java.runtime.version | |
1.4.0-b92 | |
java.awt.graphicsenv | |
sun.awt.Win32GraphicsEnvironment | |
java.endorsed.dirs | |
C:\JavaTools\j2sdk1.4.0\jre\lib\endorsed | |
os.arch | |
x86 | |
java.io.tmpdir | |
C:\DOCUME~1\dupont\LOCALS~1\Temp\ | |
line.separator | |
java.vm.specification.vendor | |
Sun Microsystems Inc. | |
user.variant | |
os.name | |
Windows 2000 | |
sun.java2d.fontpath | |
java.library.path | |
C:\JavaTools\j2sdk1.4.0\bin;.;C:\WINNT\System32;C:\WINNT;C :\PROGRA~1\RATIONAL\RATION~1\NUTCROOT\bin;C:\PROGRA~1\RATIONAL\RATION~1\NUTCROOT \bin\x11;C:\PROGRA~1\RATIONAL\RATION~1\NUTCROOT\mksnt;C:\JAVATO~1\RATIONAL\RATIO N~1\NUTCROOT\mksnt;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;C:\Program Files\Rational\common;C:\Pro gram Files\Rational\ClearQuest;C:\Program Files\Rational\Rose\TopLink\;C:\Progra m Files\Rational\Rational Test;c:\javatools\j2sdk1.4.0\bin\;C:\javatools\jwsdp-1 .2\jwsdp-shared\bin | |
java.specification.name | |
Java Platform API Specification | |
java.class.version | |
48.0 | |
java.util.prefs.PreferencesFactory | |
java.util.prefs.WindowsPreferencesFactory | |
os.version | |
5.0 | |
user.home | |
C:\Documents and Settings\dupont | |
user.timezone | |
java.awt.printerjob | |
sun.awt.windows.WPrinterJob | |
file.encoding | |
Cp1252 | |
java.specification.version | |
1.4 | |
user.name | |
dupont | |
java.class.path | |
D:\Usr\Exercices\Database\colHashtable\classes\;C:\JavaTools \j2sdk1.4.0\jre\lib\rt.jar;C:\JavaTools\j2sdk1.4.0\lib\dt.jar;C:\JavaTools\j2sdk 1.4.0\lib\tools.jar;C:\JavaTools\j2sdk1.4.0\jre\lib\ext\dnsns.jar;C:\JavaTools\j 2sdk1.4.0\jre\lib\ext\ldapsec.jar;C:\JavaTools\j2sdk1.4.0\jre\lib\ext\localedata .jar;C:\JavaTools\j2sdk1.4.0\jre\lib\ext\sunjce_provider.jar;D:\Usr\Commun\class es | |
java.vm.specification.version | |
1.0 | |
sun.arch.data.model | |
32 | |
java.home | |
C:\JavaTools\j2sdk1.4.0\jre | |
java.specification.vendor | |
Sun Microsystems Inc. | |
user.language | |
fr | |
awt.toolkit | |
sun.awt.windows.WToolkit | |
java.vm.info | |
mixed mode | |
java.version | |
1.4.0 | |
java.ext.dirs | |
C:\JavaTools\j2sdk1.4.0\jre\lib\ext | |
sun.boot.class.path | |
C:\JavaTools\j2sdk1.4.0\jre\lib\rt.jar;C:\JavaTools\j2sd k1.4.0\jre\lib\i18n.jar;C:\JavaTools\j2sdk1.4.0\jre\lib\sunrsasign.jar;C:\JavaTo ols\j2sdk1.4.0\jre\lib\jsse.jar;C:\JavaTools\j2sdk1.4.0\jre\lib\jce.jar;C:\JavaT ools\j2sdk1.4.0\jre\lib\charsets.jar;C:\JavaTools\j2sdk1.4.0\jre\classes | |
java.vendor | |
Sun Microsystems Inc. | |
file.separator | |
\ | |
java.vendor.url.bug | |
http://java.sun.com/cgi-bin/bugreport.cgi | |
sun.cpu.endian | |
little | |
sun.io.unicode.encoding | |
UnicodeLittle | |
sun.cpu.isalist | |
pentium i486 i386 |