turma tenho que colocar um .properties fora da minha aplicacao, pos nele consta a senha do banco de dados e a senha muda constantemente entao coloquei num properties para poder mudar sem ter q recompilar meu codigo, mas como eu coloco na string para pegar o arquivo ? o diretorio em q ele vai ficar é “C:\Java\server\apache-tomcat-6.0.20\webapps\PainelDeLeitos” sendo q isso é na minha maquina windows mas vai ficar em uma maquina linux nao queria colocar desda da raiz tem outro jeito ? sem ser da raiz ?
Duvida na string para pegar o arquivo .properties no tomcat?
10 Respostas
Se fizer desse jeito (ao menos em aplicações desktop funciona), o arquivo será lido a partir da pasta do projeto (caminho relativo):
Properties props = new Properties();
// dentro de uma instância:
props.load(getClass().getResourceAsStream("/painel.properities"));
// ou em um contexto estático:
props.load(NomeDaClasse.class.getResourceAsStream("/painel.properities"));
Nesse caso, usaria o arquivo painel.properities na raiz do projeto.
a pasta do projeto qual seria ? para mim essa “/” pegaria desdo “src” estou errado ?
Não. Você está certo. É isso mesmo, a partir da pasta de código fonte.
entao desse jeito nao serve para mim, pos ele vai ter q ficar dentro do meu .war e é justamente isso q eu nao quero ele tem q ficar fora do meu projeto, para eu poder mudar as informações nescessarias e nao ter q recompilar o meu codigo! acho q a melhor solucao entao é eu colocalo em uma diretorio padrao pos varias aplicaçoes irao ler o mesmo properties, nao sei se é uma boa solucao mas aceito sujestoes !!!
Mas mesmo quando você cria um pacote com a aplicação, ele consegue ler o arquivo do mesmo jeito (novamente, digo por experiência com aplicações desktop; em web não posso garantir, mas deve funcionar).
Eu costumo deixar o arquivo de properties dentro da pasta de código fonte e ele é empacotado junto com o JAR. Funciona perfeitamente dessa maneira.
sim mas esse meu arquivo properties nao sera lido somente por essa aplicação e sim por outras tambem eu nao posso deixalo empacotado em uma unica aplicacao tenho q deixar ele solto, pos ele sera um arquivo de configuracao para todos os projetos q criarei entendeu ?
Agora entendi. Mas o que conterá nesse arquivo? Todas as aplicações precisão lê-lo mesmo?
login e senha do banco, pos a senha muda toda hora ! nao sei se é a melhor solucao por questao de segurança conceitual e etc…, mas foi a melhor q eu achei, mas se tiver uma solução melhor pode me falar!!!
Boa tarde amigo!
Eu comecei a trabalhar em um projeto para a edição de arquivos bundle…
Acredito que se vc der uma olhada no codigo talvez lhe esclareça um pouco mais…
A ideia é a mesma tanto para web como para desktop… mas vc nao podera obter o recurso como stream e sim pelo caminho Absoluto ou relativo dele…A não ser que vc adicione o arquivo ao classpath global… nunca testei mas acho que funciona numa boa
A propósito, seria uma boa oportunidade para se utilizar Spring!
[]s