Editar o proprio jar quando em execução

3 respostas
gqferreira

Olá pessoal!

Como o próprio assunto diz, eu gostaria de saber se é possivel editar um arquivo interno dentro do jar que esta se executando. Ele se auto-editaria.
Preciso editar alguns *.properties de dentro. É possivel? Como? Obrigado a todos. :thumbup:

3 Respostas

barenko

Tá ai uma ótima pergunta!

Eu já tentei fazer isso tb e não consegui…

Se vc tiver um bocado d tempo livre e adorar o core do java, talvez dê p/ vc copiar o jar, dezipar, alterar o arquivo, zipar d novo e sobreescrever o jar existente com esse novo… tudo em tempo de execução utilizando o próprio pacote (isso é qse um canibalismo). Qdo eu tive essa idéia, não cheguei a testar p/ ver se daria certo (tipo, se o SO deixaria eu sobreescrever um arquivo em uso)…

Todas as outras tentativas q eu fiz com reflexão falharam… :frowning:

E como eu naõ queria trabalhar com zip e descompactação, decidi criar 2 arquivos de configuração: um com todas as configs padrões do sistema (dentro do jar) e outro com as personalizadas (fora do jar)…

Jose111

Acredito que sobreescrever o .jar não tenha problema nenhum, pelo menos comigo nunca aconteceu já que depois de executado o Windows carrega o programa para memória e para de acessar o arquivo em disco. Em outro SO não sei.

(Me corrijam se estiver equivocado).

Marky.Vasconcelos

Voce pode acessar o File e reescrever mesmo dentro do jar.

É algo assim.

String fileName = getClass().getClassLoader().getResource("arq.properties").getFile();
File f = new File(fileName);
//Altera aqui o arquivo f
Criado 15 de outubro de 2009
Ultima resposta 16 de out. de 2009
Respostas 3
Participantes 4