[RESOLVIDO] ResourceBundle  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

Olá amigos

Tenho meu projeto na seguinte pasta por ex:

c:\renata\projeto1

Meus arquivos de intl (.properties) para esse projeto estão no caminho:

c:\renata\projeto1\pasta1

Entao, dentro do programa, pra criar ResourceBundle eu faço:


Agora meu problema é que meus arquivos .properties de intl não poderão mais ficar no caminho em que está. Eles ficarão em:

c:\renata

Eu simplesmente não consigo mais criar o ResourceBoundle com esse novo caminho!
Já tentei:



Mas ele sempre dá erro:



Fiz diversos testes, percebi que se eu quiser colocar os arquivos .properties de intl em qq diretório com nível abaixo do diretório que se encontra o projeto (c:\renata\projeto1) ele funciona. Mas não consigo indicar pra ele um diretóio que esteja com nível acima do diretório do projeto. É isso mesmo? O que eu faço agora?!?!?! Preciso muito disso!

Agradeço qq. dica!

[]'s - Renata

[]'s, Renata
[Email]
Adolfo Rodrigues
Java Ninja
[Avatar]

Membro desde: 18/04/2007 20:02:52
Mensagens: 270
Localização: Sampa
Offline

Acho que é o seguinte: deixando os seus properties fora do projeto, eles não serão carregados pelo classloader. Talvez escrever um classloader que os carregue resolva o seu problema...

http://www.adolfosousa.com.br/blog
[WWW] [MSN]
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

Amigo, vc poderia me dar alguma pista de como fazer isso?

Eu não tenho a menor idéia!

[]'s, Renata
[Email]
Adolfo Rodrigues
Java Ninja
[Avatar]

Membro desde: 18/04/2007 20:02:52
Mensagens: 270
Localização: Sampa
Offline

Eu nunca precisei escrever um classloader customizado. Acredito ser uma tarefa de média complexidade (média pra baixa). Procure no google por "writting custom classloaders" ou coisas do tipo...
Porém, antes, leia alguma coisa a respeito de classloader pra verificar se a minha suspeita está correta

http://www.adolfosousa.com.br/blog
[WWW] [MSN]
foliveira81
JavaGuru

Membro desde: 10/09/2006 21:57:52
Mensagens: 204
Offline

ResourceBundle bundle = ResourceBundle.getBundle("frametags");

tente isso pois me parece q esta direto no classpath sem necessidade de passar um caminho "/..".

espero q ajude


Att

Fernando Oliveira
[MSN]
Adolfo Rodrigues
Java Ninja
[Avatar]

Membro desde: 18/04/2007 20:02:52
Mensagens: 270
Localização: Sampa
Offline

É... vendo o post do foliveira81 lembrei de dizer se você não quiser escrever um classloader customizado, basta colocar os arquivos properties no classpath. Também funciona e é mais simples...

http://www.adolfosousa.com.br/blog
[WWW] [MSN]
furutani
JWizard
[Avatar]

Membro desde: 11/10/2003 23:58:51
Mensagens: 2995
Localização: Iacri-SP e São Paulo-SP
Offline

Olá Renata,

Eu trabalho da seguinte forma, eu crio pacotes
ex. br.eti.furutani.resources
e coloco os .properties lá dentro
Para recupera-los na minha aplicação eu faço assim:

Até mais,
Roberto Jundi Furutani


Sun Certified Business Component Developer 1.3
Sun Certified Web Component Developer
Sun Certified Java Programmer
SAP Certified Development Associate - ABAP with SAP NetWeaver 7.0

[WWW]
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

ERRO

[]'s, Renata
[Email]
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

Olá amigos!

Obrigada pelas respostas, mas acho que vcs não entenderam meu real problema. Eu sei como faço pra chamar o arquivo .properties, etc, etc,,, que foi explicado. Mas meu problema é outro! Meu problema é que preciso que os arquivos .properties fiquem num diretório externo ao do projeto, um diretório nada haver com o do projeto.

Por ex, eu posso ter projetos nas seguintes pastas:

c:\renata\projeto1
c:\renata\projeto2
c:\renata\projeto3
...



Só que eu quero que meu .proporties fique numa pasta assim por ex:

c:\properties\intl

Entenderam? É uma pasta externa ao projeto. Preciso disso pq preciso que vários projetos compartilhem alguns properties, usem os mesmos properties.

Ai que está meu problema, como faço referência a essa pasta externa ao projeto?!


O que eu coloco no lugar da variável CAMINHO pra funcionar?! Já tentei de tudo...

Agradeço qq ajuda!


[]'s, Renata
[Email]
furutani
JWizard
[Avatar]

Membro desde: 11/10/2003 23:58:51
Mensagens: 2995
Localização: Iacri-SP e São Paulo-SP
Offline

Olá

Por que você não usa PropertyResouceBundle?
Ele tem um construtor que aceita inputstream.

Até mais,
Roberto Jundi Furutani


Sun Certified Business Component Developer 1.3
Sun Certified Web Component Developer
Sun Certified Java Programmer
SAP Certified Development Associate - ABAP with SAP NetWeaver 7.0

[WWW]
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

Olá!

Eu vi na API sobre esse PropertyResourceBundle. Tentei usar mas não consegui, alguma idéia de como faço isso? Eu criei o InputStream pra ele, mas depois tudo que tentei só deu erro...

[]'s, Renata
[Email]
furutani
JWizard
[Avatar]

Membro desde: 11/10/2003 23:58:51
Mensagens: 2995
Localização: Iacri-SP e São Paulo-SP
Offline

Olá
RenataFA wrote:Olá!
Eu vi na API sobre esse PropertyResourceBundle. Tentei usar mas não consegui, alguma idéia de como faço isso? Eu criei o InputStream pra ele, mas depois tudo que tentei só deu erro...


Qual erro?

Até mais,
Roberto Jundi Furutani


Sun Certified Business Component Developer 1.3
Sun Certified Web Component Developer
Sun Certified Java Programmer
SAP Certified Development Associate - ABAP with SAP NetWeaver 7.0

[WWW]
furutani
JWizard
[Avatar]

Membro desde: 11/10/2003 23:58:51
Mensagens: 2995
Localização: Iacri-SP e São Paulo-SP
Offline

Olá

Veja esse post http://www.guj.com.br/posts/list/15/60782.java#319342.

Até mais,
Roberto Jundi Furutani


Sun Certified Business Component Developer 1.3
Sun Certified Web Component Developer
Sun Certified Java Programmer
SAP Certified Development Associate - ABAP with SAP NetWeaver 7.0

[WWW]
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

Oi!

Eu vi o post sugerido,,, mas veja continuo com o mesmo problema. Se vc prestar atenção no post, o colega adriano.ferranti resolveu o problema dizendo o seguinte:


Acho que é mais simples você tentar:



onde file_name deve ser o nome do pacote onde está o arquivo mais o nome do arquivo sem a extensão.
Ex.: meupacote.meu_arquivo
para o arquivo meu_arquivo.properties dentro do package meupacote

e property_name, óbvio é o nome da propriedade que você quer ler.


Perceba a seguinte linha que ele disse:

"onde file_name deve ser o nome do pacote onde está o arquivo mais o nome do arquivo sem a extensão."

Pacote? Ai que está o meu problema! Mesmo problema que eu tenho usando ResourceBundle! Eu não tenho pacote onde está o arquivo, ele está num diretório externo ao projeto. Como dizer isso pra ele?

Eu até que tentei assim como sugerido:


Mas continuo com o msm erro:

java.util.MissingResourceException: Can't find bundle for base name e:/arquivo, locale pt_BR

Parece q denovo não deu...

Tô tentando tb a idéia do outro colega, de fazer um ClassLoader. Mas até agora sem sucesso, só erro!

Alguém tem outra dica?!


[]'s, Renata
[Email]
Adolfo Rodrigues
Java Ninja
[Avatar]

Membro desde: 18/04/2007 20:02:52
Mensagens: 270
Localização: Sampa
Offline


Entenderam? É uma pasta externa ao projeto. Preciso disso pq preciso que vários projetos compartilhem alguns properties, usem os mesmos properties.


Eu entendi, Renata. Continuo com as mesmas sugestões:

1) Escrever um classloader customizado para ler os properties no diretório que você quiser

ou (bem mais simples na minha opinião)

2) Colocar o diretório com os properties no classpath.


http://www.adolfosousa.com.br/blog
[WWW] [MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team