Problemas com JAR

2 respostas
tokolima

Olá,

Tenho o seguinte problema:

Minha aplicação depende de um arquivo de configuração, na sua inicialização, para funcionar de forma flexivel.
Enfim, meu arquivo de configuração é um “txt” (config.txt).
A estrutura do projeto é a seguinte:

NomeDoProjeto
->src
->forms
-> …
->res
->‘config.txt’

Sendo forms e res os pacotes (packages).
Para carregar o arquivo ‘config.txt’ utilizo :

new File("bin/res/config.txt");

Quando executo o programa a partir da IDE (Eclipse) ele funciona normalmente porque o arquivo está localizado no diretório corretamente.
Porem se eu gero um “.jar” do meu projeto, verifico que o arquivo config.txt está no jar porem ao chamar o arquivo gero uma exceção do tipo FileNotFound …

Como posso ler o arquivo dentro do JAR do mesmo projeto?

2 Respostas

T

new File e FileInputStream não conseguem ler dentro de um arquivo .jar (que é um arquivo .zip com outro nome).

Você tem de usar algo como getResourceAsStream. Dê uma procuradinha aqui mesmo no fórum que tem um monte de gente que usa isso.

otaviofcs
java.util.ResourceBundle resourceConfig = java.util.ResourceBundle.getBundle("NOME_DO_PACOTE.config");

Vai procurar o arquivo config.properties dentro da pasta NOME_DO_PACOTE e dentro de todos os recursos disponíveis para a sua aplicação (o CLASSPATH). Não use o nome config.txt, use config.properties que é “padrão”.

[OPINIAO_PESSOAL]
Além disso, não vejo como muito correto colocar um arquivo de configurações (que por ser passível de modificação o tempo todo, não é compilado) dentro do jar. Claro, existem excessões, mas eu evitaria isso ao máximo. Ou o cliente não poderá nunca modificar as configurações (é ruim falar para o cliente tirar o arquivo do jar, criar outro e depois salvar dentro do jar.
[/OPINIAO_PESSOAL]

Criado 29 de novembro de 2007
Ultima resposta 29 de nov. de 2007
Respostas 2
Participantes 3