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.
da para fazer!!! mas eu so sei assim o .jar nao deixa de ser um zip entao vc descompacta e edita o txt e compacta denovo tudo por codigo claro !!!
E
entanglement
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:
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.
dijava
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!
gqferreira
Uso linux, como faria? (sei que so funcionaria no linux)
E
entanglement
Você quer coisas complicadas e trabalhosas? Basicamente você teria de:
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.