Olá pessoal!
Eu gostaria de saber se tem como editar um arquivo texto interno? Tipo, tenho minha aplicação .jar rodando, dentro dele também tem um arquivo texto, queria que minha aplicação (rodando) editasse esse arquivo.
[quote=gqferreira]Olá pessoal!
Eu gostaria de saber se tem como editar um arquivo texto interno? Tipo, tenho minha aplicação .jar rodando, dentro dele também tem um arquivo texto, queria que minha aplicação (rodando) editasse esse arquivo.
Vlw pessoal! :thumbup: :thumbup: [/quote]
A resposta simples é “não”. É mais ou menos como você tentasse editar um arquivo .exe enquanto ele está executando. (O Unix/Linux não prende o arquivo enquanto ele está executando, mas no Windows o JAR fica “preso” enquanto o java.exe está executando o jar).
O melhor, é claro, é mover essa configuração texto para um arquivo separado, onde ela pode ser editada facilmente.
acho q entendi errado, vc quer editar o jar que esta no seu classpath ? se for isso nao da, agora se nao tiver nada haver com a sua aplicacao ai da para fzr oq falei mais a cima!
Você quer coisas complicadas e trabalhosas? Basicamente você teria de:
a) Extrair o JAR completo;
b) Mexer só naquele arquivo;
c) Recriar o JAR a partir dos arquivos extraídos.
d) Renomear o JAR original;
e) Mover o JAR recriado para o JAR que você está usando.
Acho que é muito trabalho para pouco resultado.
Nenhum dos métodos de java.util.zip ou java.util.jar permite obter o conteúdo comprimido de cada arquivo (para que você não tenha de recomprimir tudo de volta). Por isso, se o JAR for grande ou tiver vários arquivos, simplesmente não acho que valha a pena.
Se quiser fazer a mesma coisa que “jar -u” faz - atualização de um arquivo em um JAR, então olhe nos fontes do JDK, em:
src\j2se\src\share\classes\sun\tools\jar
(você precisa baixar os fontes completos separadamente, a partir de http://download.java.net/jdk6/source/ , e então executar o “instalador” dos fontes. A seguir, olhe os arquivos que estão nesse diretório que lhe indiquei.