Estoy trabajando con *.jar
archivos, hasta donde tengo entendido, es un formato de archivo que puedo manipular con herramientas estándar como comandos zip
o unzip
.
A menudo necesito reemplazar un archivo ya comprimido. Hasta ahora lo descomprimo, elimino el archivo antiguo, muevo el nuevo al lugar adecuado (es un archivo fuente, por lo que esmuy en capas), y luego lo volví a comprimir.
¿Es posible hacerlo más rápido? Serían 3 informaciones: el archivo a reemplazar, el archivo de destino en el que reemplazar y la ruta al archivo que se reemplazará en el archivo.
Respuesta1
Puedes hacerlo en dos pasos:
zip -d myjar.jar path/to/file/to/delete
jar uf myjar.jar -C base/path path/to/file/to/add
Puedes ignorar la -C base/path
parte si ya estás en el directorio base (que contiene path/to/file/to/add
).
Cuando trabaje con archivos JAR en lugar de archivos ZIP simples, debe acostumbrarse a utilizar jar
en lugar de zip
en la medida de lo posible; garantiza que el manifiesto se almacene correctamente.
Con un archivo ZIP simple, puede agregar o actualizar un archivo simplemente (re)archivándolo; entonces, en lugar del jar
comando anterior, use:
zip myzip.zip path/to/file/to/add
Debes estar en el directorio base para que esto funcione. ( jar
También funcionará, pero es extraño que sea necesario jar
cuando se trabaja con archivos ZIP).