Participer au site avec un Tip
Rechercher
 

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 :

Module : java.base - Package : java.lang - Classe : System
Version documentée : Java SE 17

Méthode « System.getProperty »

Signature

public static String getProperty( String propertyName );

Description

Cette méthode renvoie la valeur de la « propriété d'environnement Java » spécifiée en paramètre.

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

ParamètreTypeDescription
propertyName
String
le nom de la propriété d'environnement demandée.

Valeur de retour

La valeur de retour est de type String. La valeur de la propriété d'environnement Java demandée.

Exceptions

Type de l'exceptionDescription
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.

Exemple de code

 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 !
        
    }
    
}
Exemple de manipulation de propriétés d'environnement Java avec la méthode getProperty

Et voici le résultat affiché par ce programme sur une plateforme Linux.

Temp file == /tmp/myAppLock.txt

Disponible depuis

1.0

Voir aussi

java.lang.SecurityException
java.lang.SecurityManager.checkPropertiesAccess()
java.lang.System.getenv()
java.lang.System.getenv( java.lang.String )
java.lang.System.getProperties()
java.lang.System.setProperties( java.util.Properties )
java.util.Properties