Obter a pasta atual

Pessoal, já pesquisei aqui no fórum e na internet e não achei uma resposta para a minha dúvida…

É o seguinte:

Em minha aplicação web, faço uma leitura de um arquivo do servidor. No Windows eu passo o caminho absoluto do arquivo (S:\pasta\arquivo.txt) como parâmetro do objeto FileReader. Porém, se eu rodar esse meu programa no Linux, obviamente vai dar erro devido à estrutura de pastas ser diferente. Eu consegui pegar o caminho da pasta atual em um servlet usando o comando getServletContext().getRealPath(“nomedapasta”), mas a classe na qual preciso fazer isso não é um servlet. Será que alguém pode me ajudar?

Segue abaixo o código que estou usando:

public void lerArquivo()
    {
        try
        {
            FileReader arquivo = new FileReader("S:\pasta\server.txt");
            
            String s = "";
            
            int index = arquivo.read();
            while (index!=-1)
            {
                s = s +(char)index;
                index = arquivo.read();
            }
            
            arquivo.close();
            
            Classe.servidor = s;
        }
        catch (Exception e)
        {
            error(e.getMessage());
        }
    }
}

Cara tive o mesmo problema.

getClassLoader, algo do gênero, vou achar o código e posto depois.

Obrigado!! Fico no aguardo!!

p é qualquer objeto, arquivo.txt é qualquer arquivo que vc tenha certeza que existe na base do projeto

p.getClass().getClassLoader().getResource("arquivo.txt").getPath()

fabioissamu, obrigado pela dica! Não consegui do jeito que vc mencionou acima, mas consegui de uma maneira muito parecida:

getClass().getClassLoader().getResource("").getPath();

Com isso consegui pegar o diretório raiz da compilação, aí foi só complementar o caminho com o endereço do arquivo!!

Muito obrigado!!!

blz, vou tentar sem também :slight_smile:

fiz isso pra configurar os arquivos relativos ao projeto em runtime.

não rolou não, vou tentar o File.separator mesmo.

[quote=fabioissamu]p é qualquer objeto, arquivo.txt é qualquer arquivo que vc tenha certeza que existe na base do projeto

p.getClass().getClassLoader().getResource("arquivo.txt").getPath() [/quote]

Fábio!

Amigo o que vc passou no getResource("") foi o nome da imagem ou o caminho?
no meu caso estava fazendo assim:

String diretorioImagem = FacesContext.getCurrentInstance().getExternalContext().getRealPath("") + "/WEB-INF/classes/relatorios/images";

localmente funciona, só que quando subo a aplicação para o servidor linux, as imagens do meu relatório aparecem em branco, de alguma forma a aplicação não consegue localizar o caminho da imagem no servidor.

Pegando o seu exemplo ficaria assim?

String diretorioImagem = getClass().getClassLoader().getResource("").getPath();

Grato!