Obtenir le répertoire d'accueil de l'utilisateur en Java

Mohammad Irfan 12 octobre 2023
  1. Obtenez le répertoire personnel de l’utilisateur à l’aide de la méthode System.getProperty() en Java
  2. Obtenir le répertoire personnel de l’utilisateur à l’aide de la bibliothèque Apache CommonsIO en Java
  3. Obtenez le répertoire personnel de l’utilisateur à l’aide de la méthode System.getenv() en Java
  4. Sommaire
Obtenir le répertoire d'accueil de l'utilisateur en Java

Ce didacticiel explique comment obtenir le répertoire personnel de l’utilisateur en Java et répertorie quelques exemples de codes pour vous guider sur le sujet.

Pour un système d’exploitation multi-utilisateurs, il existe un répertoire de système de fichiers pour chaque utilisateur ; ce répertoire est appelé répertoire personnel de l’utilisateur. Il existe différentes manières de trouver le répertoire personnel de l’utilisateur en Java. Regardons chacun d’eux.

Obtenez le répertoire personnel de l’utilisateur à l’aide de la méthode System.getProperty() en Java

La classe System en Java possède un objet Properties utilisé pour stocker différentes propriétés et configurations de l’environnement de travail actuel. Il contient également le répertoire personnel de l’utilisateur.

Nous pouvons accéder à ces propriétés en utilisant la méthode getProperty() de cette classe. Nous devons passer le nom de la propriété système que nous voulons afficher. Dans notre cas, ce serait user.home.

Le code suivant montre comment cela fonctionne.

public class Main {
  public static void main(String[] args) {
    String userHomeDir = System.getProperty("user.home");
    System.out.printf("The User Home Directory is %s", userHomeDir);
  }
}

Production:

The User Home Directory is C:\Users\Lenovo

Si vous êtes curieux et souhaitez voir toutes les propriétés du système, vous pouvez utiliser la méthode getProperties(). Le code de la méthode getProperties() est présenté ci-dessous.

import java.util.Map;
import java.util.Properties;
public class Main {
  public static void main(String[] args) {
    Properties props = System.getProperties();
    for (Map.Entry<Object, Object> prop : props.entrySet())
      System.out.println("Property: +" + prop.getKey() + "\tValue: " + prop.getValue());
  }
}

Obtenir le répertoire personnel de l’utilisateur à l’aide de la bibliothèque Apache CommonsIO en Java

Apache Commons est une bibliothèque très puissante, et la classe FileUtils de la bibliothèque CommonsIO peut être utilisée pour récupérer le répertoire personnel.

Nous pouvons simplement utiliser la méthode getUserDirectory() de cette classe pour afficher le répertoire personnel de l’utilisateur. Il renvoie un objet File qui représente le répertoire personnel. Nous pouvons également obtenir un chemin String du répertoire personnel en utilisant la méthode getUserDirectoryPath().

Le code et la sortie de ces méthodes sont indiqués ci-dessous.

import java.io.File;
import org.apache.commons.io.FileUtils;
public class Main {
  public static void main(String[] args) {
    File homeDir = FileUtils.getUserDirectory();
    String homeDirPath = FileUtils.getUserDirectoryPath();
    System.out.printf("The User Home Directory is %s\n", homeDir);
    System.out.printf("The path of User Home Directory is %s", homeDirPath);
  }
}

Production:

The User Home Directory is C:\Users\Lenovo
The path of User Home Directory is C:\Users\Lenovo

Obtenez le répertoire personnel de l’utilisateur à l’aide de la méthode System.getenv() en Java

La méthode getenv() de la classe System permet d’obtenir la valeur des variables d’environnement système. Nous devons passer le nom de la variable d’environnement à laquelle nous voulons accéder.

Pour obtenir le répertoire personnel de l’utilisateur, nous devons utiliser la chaîne USERPROFILE. Le programme suivant montre le fonctionnement de la méthode getenv().

public class Main {
  public static void main(String[] args) {
    String userHomeDir = System.getenv("USERPROFILE");
    System.out.printf("The User Home Directory is %s", userHomeDir);
  }
}

Production:

The User Home Directory is C:\Users\Lenovo

Vous pouvez également utiliser cette méthode pour afficher toutes les variables d’environnement. Exécutez le programme suivant si vous êtes curieux d’en savoir plus sur les variables d’environnement de votre système.

import java.util.Map;
public class Main {
  public static void main(String[] args) {
    Map<String, String> envVars = System.getenv();
    for (Map.Entry<String, String> var : envVars.entrySet())
      System.out.println(var.getKey() + " ---> " + var.getValue());
  }
}

Sommaire

Dans ce guide, nous apprenons comment obtenir le répertoire personnel de l’utilisateur en Java. Pour certaines plates-formes Windows exécutant d’anciennes versions de Java (avant Java 8), la méthode System.getProperty() peut ne pas donner le résultat souhaité en raison de la présence d’un bogue avec l’ID 4787931.

Un autre bogue similaire (Bug ID 6519127) existe également. De ce fait, la méthode getProperty() donne des résultats indésirables. Cependant, ces deux bugs ont déjà été résolus.

Dans la plupart des cas, la méthode getProperty() fonctionnera très bien, mais nous pouvons utiliser la méthode alternative System.getenv() pour obtenir le répertoire personnel de l’utilisateur.

Article connexe - Java Directory