Problemas - arquivo .properties!

Olá galera!

Estou usando um arquivo .properties(config.properties) p/ fazer a conexão com o banco de dados. Faço uso dele em uma classe responsável pela conexão ao banco que se encontra no msm classpath net/sytes/tsda/zeus/dao/…
Porém, um erro de arquivo não encontrado ocorre ao tentar corregá-lo!
Já tentei de várias maneiras, mas ainda não consegui solucionar o problema!

O trecho d código q uso p/ carregar o arquivo está logo em baixo:

Properties properties = new Properties();
File file = new File(config.properties);
try
{
	this.fileInputStream = new FileInputStream(file);
	this.properties.load(fileInputStream);
}
catch (FileNotFoundException e)
{
	// TODO Auto-generated catch block
	e.printStackTrace();
}	
catch (IOException e)
{
	// TODO Auto-generated catch block
	e.printStackTrace();
}

Alguém poderia da uma luz por favor?

Vlw.

Em que diretório dentro da sua aplicação seu arquivo properties se encontra? Se você colocr somente assim:

File properties = new File("config.properties"); //atenção, aqui ele recebe uma String!

ele vai procurar por um arquivo na raiz do seu sistema de diretórios (o C: se vc usa windows, o / se vc usa linux, etc…), não na sua aplicação.

Assim vc recupera o diretorio atual onde sua aplicacao está rodando:

String dirAtual = System.getProperty("user.dir");

E assim vc pega seu arquivo properties (repare que o caracter separador depende do sistema operacional, no windows é ‘’, no linux é /…

File properties = new File(dirAtual + caracterSeparador + diretorioOndeEstaOArquivoDentroDaSuaAplicacao + "config.properties");

[quote=cassio]Em que diretório dentro da sua aplicação seu arquivo properties se encontra? Se você colocr somente assim:

File properties = new File("config.properties"); //atenção, aqui ele recebe uma String!

ele vai procurar por um arquivo na raiz do seu sistema de diretórios (o C: se vc usa windows, o / se vc usa linux, etc…), não na sua aplicação.

Assim vc recupera o diretorio atual onde sua aplicacao está rodando:

String dirAtual = System.getProperty("user.dir");

E assim vc pega seu arquivo properties (repare que o caracter separador depende do sistema operacional, no windows é ‘’, no linux é /…

File properties = new File(dirAtual + caracterSeparador + diretorioOndeEstaOArquivoDentroDaSuaAplicacao + "config.properties");

[/quote]

oq seria este argumento “user.dir” q vc usa p/ recuperar o diretório atual??

Como eu faria p/ saber o diretório ond c encontra minha classe de conexao ao banco?

A classe System possui alguns parâmetros que são setados dependendo do ambiente onde vc está rodando sua aplicação. Com System.getProperty(nomeDaPropriedade) eu consigo pegar cada uma delas. “user.dir” seria o diretório onde sua aplicação está rodando, com o caminho completo até ela…

[quote=cassio]A classe System possui alguns parâmetros que são setados dependendo do ambiente onde vc está rodando sua aplicação. Com System.getProperty(nomeDaPropriedade) eu consigo pegar cada uma delas. “user.dir” seria o diretório onde sua aplicação está rodando, com o caminho completo até ela…

[/quote]

Entendi… soh q esse método me rertornou somente o diretório principal, eu queria saber um outro método q me retornase a estrutura de diretórios onde c encontra a classe!

Eu tentei usar o:

 	String arquivo = getClass().getResource("config.properties").toString();

Este me retorna exatamente oq eu preciso(a estrutura de diretorios ond c encontrao o arquivo . properties), mas continua dando o mesmo erro:

java.io.FileNotFoundException: file:\C:\eclipse\workspace\zeus_webserver\WEB-INF\classes\net\sytes\tsda\zeus\dao\config.properties (The filename, directory name, or volume label syntax is incorrect)

Não sei pq nao achou, sendo eh exatamente este o caminho do arquivo!

Sabe me dizer?

APPSet appset = new APPSet(); String s = appset.getClass().getResource("application.properties").toString(); if (s.indexOf("file:")>-1){ s = s.replaceFirst("file:",""); }

eu tbm tava tendo esta duvidazinha…
vendo a sua implementação ai achei isso ai…
que bomba…

se alguem tiver alguma implementação mais padronizada, mais bonitina ou coisa assim… colabore conosco…

rs**
mas,
o código acima funcionou…

[quote=proteus_adi] APPSet appset = new APPSet(); String s = appset.getClass().getResource("application.properties").toString(); if (s.indexOf("file:")>-1){ s = s.replaceFirst("file:",""); }

eu tbm tava tendo esta duvidazinha…
vendo a sua implementação ai achei isso ai…
que bomba…

se alguem tiver alguma implementação mais padronizada, mais bonitina ou coisa assim… colabore conosco…

rs**
mas,
o código acima funcionou…[/quote]

Intão kra…

dei uma mexida aqui no código i acabei resolvendo meu problema!!

Ficou assim:


String arquivo = getClass().getResource("arquivo.properties").getPath();
File file = new File(arquivo);
FileInputStream fileInputStream = new FileInputStream(file);
Properties properties = new Properties();
properies.load(fileInputstream);