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 
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!