Avatar ·

Como obter o diretório de trabalho atual em Java?

Olá a todos! Estou começando a aprender Java e me deparei com um problema: preciso saber em qual pasta meu programa está localizado para ler um arquivo de configuração. Suponha que eu tenha o seguinte código:

import java.io.File;

public class Main {
    public static void main(String[] args) {
        File config = new File("config.txt");
        if (config.exists()) {
            System.out.println("Arquivo encontrado!");
        } else {
            System.out.println("Arquivo não encontrado. Onde estou?");
        }
    }
}

O problema é que esse código só funciona se eu executar o programa a partir da mesma pasta onde está o config.txt. Se eu executar de outro diretório, o arquivo não é encontrado. Como obter em Java o caminho absoluto para a pasta de trabalho atual, para que eu possa construir o caminho completo para o arquivo? Ouvi falar sobre System.getProperty("user.dir"), mas não tenho certeza se é o correto.

Por favor, me digam como fazer isso de forma confiável, para que o programa funcione independentemente do diretório de onde é executado.