Título: [JARs] Como modificar un archivo que esté en un mismo jar? Publicado por: klaine en 23 Mayo 2011, 06:25 am Buenas, tengo el siguiente problema con los archivos.jar
¿Como podría modificar los archivos que están compresos en el mismo jar con una aplicacion en java? Por ejemplo, tengo mi archivo.class en una carpeta, en esa misma carpeta tengo una carpeta con archivos *.txt y la carpeta con el manifest, ok si compilo y ejecuto a nivel de linea de comandos puedo modificar el contenido de cualquier archivo.txt que esté en dicha carpeta, ahora bien, si comprimo y ejecuto el ejecutable.jar al tratar de trabajar con el directorio actual me toma el directorio donde está el .jar y no el directorio que está dentro del .jar, entonces mi duda es: ¿se puede trabajar con los archivos que están compresos dentro del .jar? ¿como? No quisiera llegar a tener que depender de archivos externos :-\ De antemano, gracias :D Saludos ;) Título: Re: [JARs] Como modificar un archivo que esté en un mismo jar? Publicado por: 1mpuls0 en 23 Mayo 2011, 20:49 pm Hola
Interesante tema. No sé muy bien que intentas hacer como para querer modificar el .txt Hasta donde sé no se puede de una forma tan fácil. Investiga sobre la clase ZipFile tal vez contenga algún método que pueda ayudarte, ya que el jar es como un .zip. Si no, la única solución es hacer lo que tenga que hacer tu aplicación y al momento de querer modificar el .txt crear una copia del jar,extraer el contenido, modificar el .txt, terminar la aplicación, volver a crear el jar, renombrarlo e iniciar de nuevo la aplicación. Explica mejor que es lo que intentas hacer y a ver si encontramos una mejor solución. Saludos. Título: Re: [JARs] Como modificar un archivo que esté en un mismo jar? Publicado por: klaine en 28 Mayo 2011, 08:44 am Intentaba hacer un programa que me logeara en paginas, resolví hacerlo de la siguiente forma:
> Un método que escribe archivos, lo uso para escribir un vbs que envíe pulsaciones de teclas, como no supe llamar al vbs desde java resolvi usar este mismo metodo para escribir un bat que llame al vbs y le pase los argumentos con cscript > Un metodo que reciba los argumentos necesarios para escribir el bat y que llame al vbs > Esop, el resto lo hace el vbs, luego de abrir el navegador con la url especificada, muestra un msgbox y cuando se le da aceptar espera tres segundos y envía las pulsaciones de teclas. Dejo el code de los métodos que uso, dejaría el code completo pero la gui la hice en netbeans, ya no me da el ánimo para codear en bloc de notas Xd para escribir un archivo: Código
Y la clase writer: Código
El vbs, este no cambia Código
El bat, este se escribe con el método writer de java: Código
El metodo que llama al writer y escribe el bat (no recuerdo si fue este es que lo hice varias veces) Código
Y bueno, el programa me salió, pero dependo mucho de estos archivos temporales, si hay otra solución sería genial, desde ya gracias por leer este tema. Saludos ;) Título: Re: [JARs] Como modificar un archivo que esté en un mismo jar? Publicado por: kiriost en 28 Mayo 2011, 22:22 pm Amigo si deseas enviar pulsaciones de tecla usa la clase Robot que trae Java, en vez de hacer tanto lío. ::)
Acá te dejo un ejemplo de la utilización de la clase Robot: Código
Espero que te sirva. Y si quieres crear un bot que te registre en diferentes páginas te recomendaría informarte sobre los comandos HTTP (GET y POST) y crear un bot mediante sockets (yo ya tengo el mío) Título: Re: [JARs] Como modificar un archivo que esté en un mismo jar? Publicado por: klaine en 28 Mayo 2011, 23:15 pm Sry me faltó decir que la razón por la que quiero modificar un archivo dentro de un jar es porque este programa escribe mis direcciones en archivo de texto plano, el contenido es como sigue:
url#user#pass Entonces después lo lee con un buffereredreader y lo divide con String.split("#") Con eso creo los archivos ya mencionados, investigaré sobre la clase robot, no la conocía, gracias, pero ahora lo que necesito es eso de modificar el txt que esté dentro del jar (si hay otra opcion, bienvenida sea). Saludos y gracias por vuestra ayuda ;) |