Obtenha o diretório inicial do usuário em Java

Mohammad Irfan 12 outubro 2023
  1. Obtenha o diretório inicial do usuário usando o método System.getProperty() em Java
  2. Obtenha o diretório inicial do usuário usando a biblioteca Apache CommonsIO em Java
  3. Obtenha o diretório inicial do usuário usando o método System.getenv() em Java
  4. Resumo
Obtenha o diretório inicial do usuário em Java

Este tutorial apresenta como obter o diretório inicial do usuário em Java e lista alguns códigos de exemplo para guiá-lo no tópico.

Para um sistema operacional multiusuário, existe um diretório do sistema de arquivos para cada usuário; esse diretório é conhecido como diretório inicial do usuário. Existem diferentes maneiras de localizar o diretório inicial do usuário em Java. Vamos dar uma olhada em cada um deles.

Obtenha o diretório inicial do usuário usando o método System.getProperty() em Java

A classe System em Java tem um objeto Properties usado para armazenar diferentes propriedades e configurações do ambiente de trabalho atual. Ele também contém o diretório inicial do usuário.

Podemos acessar essas propriedades usando o método getProperty() desta classe. Precisamos passar o nome da propriedade do sistema que queremos ver. No nosso caso, seria user.home.

O código a seguir demonstra como funciona.

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);
  }
}

Produção:

The User Home Directory is C:\Users\Lenovo

Se estiver curioso e quiser ver todas as propriedades do sistema, você pode usar o método getProperties(). O código para o método getProperties() é mostrado abaixo.

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());
  }
}

Obtenha o diretório inicial do usuário usando a biblioteca Apache CommonsIO em Java

Apache Commons é uma biblioteca muito poderosa, e a classe FileUtils da biblioteca CommonsIO pode ser usada para buscar o diretório inicial.

Podemos simplesmente usar o método getUserDirectory() dessa classe para visualizar o diretório inicial do usuário. Ele retorna um objeto File que representa o diretório inicial. Também podemos obter um caminho String do diretório inicial usando o método getUserDirectoryPath().

O código e a saída para esses métodos são mostrados abaixo.

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);
  }
}

Produção:

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

Obtenha o diretório inicial do usuário usando o método System.getenv() em Java

O método getenv() da classe System é usado para obter o valor das variáveis ​​de ambiente do sistema. Precisamos passar o nome da variável de ambiente que queremos acessar.

Para obter o diretório inicial do usuário, precisamos usar a string USERPROFILE. O programa a seguir demonstra o funcionamento do método 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);
  }
}

Produção:

The User Home Directory is C:\Users\Lenovo

Você também pode usar este método para visualizar todas as variáveis ​​de ambiente. Execute o programa a seguir se estiver curioso para saber mais sobre as variáveis ​​de ambiente do seu sistema.

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());
  }
}

Resumo

Neste guia, aprendemos como obter o diretório inicial do usuário em Java. Para algumas plataformas Windows que executam versões Java mais antigas (antes do Java 8), o método System.getProperty() pode não dar o resultado desejado devido à presença de um bug com ID 4787931.

Outro bug semelhante (Bug ID 6519127) também existe. Por causa disso, o método getProperty() fornece resultados indesejáveis. No entanto, esses dois bugs já foram resolvidos.

Na maioria dos casos, o método getProperty() funcionará bem, mas podemos usar o método alternativo System.getenv() para obter o diretório inicial do usuário.

Artigo relacionado - Java Directory