2011-12-11 22 views
7

Tengo un archivo .jar llamado myfile.jar. Dentro de este archivo jar hay una carpeta llamada imágenes. Dentro de esta carpeta llamada imágenes, tengo una imagen llamada hi.png. Quiero actualizar esa imagen con una nueva versión de esa imagen, que también se llama hi.png. No quiero extraer todos los archivos del único archivo jar y luego volver a empaquetarlos, solo quiero actualizar la imagen. Por lo tanto, voy a mandar línea como de costumbre, escribir unas pocas líneas de código, y luego hago este comando:¿Cómo actualizo un archivo en un contenedor sin volver a empaquetar todo el contenedor?

jar uf myfile.jar -C images hi.png 

lo que esperaba que ver con ese comando fue reemplazar el viejo con el nuevo hi.png hi.png. Pero me da este error:

images\hi.png : no such file or directory 

¿Qué debo hacer para solucionarlo?

Información adicional: No puedo usar algo como WinRAR, tengo que hacer esto con la línea de comandos.

+0

** ** frasco de archivos zip son también ** ** archivos, por lo que la característica embalada [herramienta zip] (http://linux.about.com/ od/commands/l/blcmdl1_zip.htm) puede operar en ellos. Si tiene algo que no es Windows, debe tenerlo ya instalado. (Creo que MacOS lo tendría, pero no puedo verificarlo.) – FakeRainBrigand

+0

No estoy seguro de cuál es su diseño aquí ... pero 7Zip tiene una gran compatibilidad con la línea de comandos. Solo ten cuidado, la especificación de jar es exigente con el tipo exacto de zip. En segundo lugar, probablemente podría usar un jar ampliado si está basado en la web. Y ... si no está basado en la web (cliente único), por qué no solo carga la imagen de ./images/hi.png. TL; DR; Hágalo de la manera fácil, si está intercambiando en un sistema de archivos, use el sistema de archivos. –

+0

¿En qué directorio estás haciendo esto (y dónde están las imágenes y hi.png en relación con tu cwd)? –

Respuesta

19

-C está cambiando el directorio local, y está buscando hi.png allí. No controla dónde tratas de inyectarlo en el archivo JAR.

Me gustaría tratar de hacer un nuevo directorio llamado images, moviendo el local de hi.png en que, haciendo images un directorio hijo del directorio de trabajo actual, entonces basta con ejecutar la siguiente:

jar uf myfile.jar images\hi.png 
+0

Todavía me da ese error images \ hi.png: no existe tal archivo o directorio –

+1

Pruebe images/hi.png también. – joev

+0

Acabo de probar esto, y está funcionando como se esperaba. Asegúrese de que su directorio de trabajo sea el directorio que contiene "imágenes". ¿Puedes mostrar una exportación de tu símbolo del sistema mostrando la estructura del directorio y los comandos exactos que estás intentando? – ziesemer

2

Si desea editar una archivo de texto, podría haberlo hecho directamente con vim.

(Asumiendo que tiene unzip disponibles, por ejemplo yum install -y unzip en CentOS)

vim my.jar

+0

Un archivo .jar no es un archivo de texto. – EJP

5

La forma más sencilla de hacerlo es utilizando 7-zip software de. Para

  1. Edición un archivo:

    • Abrir el archivo jar 7-zip | abrir el archivo
    • ir al archivo, p. /Meta-Inf/xyz.conf
    • botón derecho del ratón y seleccione 'abierta dentro' opción
    • editar el archivo y guardar el archivo
    • cerrar la consola 7-zip y se hace.
  2. Para adición/sustitución/eliminación de un archivo.

    • Siga los primeros dos pasos hasta llegar a la carpeta deseada.
    • Extracción: borrar el archivo
    • Adición de: Arrastrar y soltar el archivo en la consola 7-zip.
    • cierre la consola y listo.
1

puede utilizar jar -uf sample.jar [path in jar file]target-file

Cuestiones relacionadas