Obtenha o diretório inicial do usuário em Java
-
Obtenha o diretório inicial do usuário usando o método
System.getProperty()
em Java - Obtenha o diretório inicial do usuário usando a biblioteca Apache CommonsIO em Java
-
Obtenha o diretório inicial do usuário usando o método
System.getenv()
em Java - Resumo
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.