public static String getProperty( String propertyName );
Normalement un système d'exploitation défini des variables d'environnement : par exemple la variable d'environnement PATH
que bon nombre d'entre vous doivent connaître. Le problème de ces variables d'environnement, c'est que leurs noms et leurs contenus sont
dépendants du système d'exploitation considéré. Pour garantir la portabilité, entre différents systèmes d'exploitations, il est donc
fortement recommandé de ne surtout pas les utiliser.
En lieu et place de ces variables d'environnement, Java SE propose la notion de « propriété d'environnement Java ». Il s'agit sensiblement de la même chose (les propriétés d'environnement Java sont, en partie, produites à partir des variables d'environnement), à la différence qu'elles sont spécifiées par la spécification Java SE et qu'elles sont donc existantes quelle que soit la JVM considérée.
Il est possible, au démarrage d'une JVM, de spécifier des propriétés d'environnement complémentaires. Pour ce faire, il faut ajouter
une ou plusieurs options -DpropName=propValue
. Par exemple, vous pouvez démarrer une JVM avec deux propriétés d'environnement Java supplémentaires
(demo1
et demo2
) comme le montre la ligne de commande suivante :
java -Ddemo1=value1 -Ddemo2=value2 MainClass
Pour une liste des principales propriétés d'environnement Java, veuillez consulter la page d'aide sur la méthode
System.getProperties()
.
Paramètre | Type | Description |
---|---|---|
propertyName |
String |
le nom de la propriété d'environnement demandée. |
La valeur de retour est de type String
. La valeur de la propriété d'environnement Java demandée.
Type de l'exception | Description |
---|---|
IllegalArgumentException |
Cette exception est déclenchée si le nom de la propriété demandée est vide ("" ). |
NullPointerException |
Cette exception est déclenchée si le nom de la propriété demandée est nul (null ) |
SecurityException |
Cette exception peut être déclenchée si un SecurityManager est définit et qu'il ne permet pas l'accès aux propriétés d'environnement du système d'exploitation. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import java.io.File; import java.io.FileOutputStream; public class GetPropertySample { public static void main(String[] args) throws Exception { // On récupère le dossier contenant les fichiers temporaires. String tempFolder = System.getProperty( "java.io.tmpdir" ); // On récupère le séparateur de dossier associé à notre OS. String folderSeparator = System.getProperty( "file.separator" ); // On génère le nom d'un fichier temporaire. File file = new File( tempFolder + folderSeparator + "myAppLock.txt" ); System.out.println( "Temp file == " + file ); // Et on créé ce nouveau fichier temporaire. try ( FileOutputStream fos = new FileOutputStream( file ) ) { fos.write( "Des données quelconques".getBytes() ); } // Le fichier temporaire doit être supprimé à la fin du programme. file.deleteOnExit(); // Vérifier rapidement la présence du fichier temporaire. Thread.sleep( 60_000 ); // Vous avez une minute ! } } |
Et voici le résultat affiché par ce programme sur une plateforme Linux.
Temp file == /tmp/myAppLock.txt
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :