我正在处理*.jar
文件,据我所知,它是一种存档格式,我可以使用标准工具(如zip
或unzip
命令)进行操作。
我经常需要替换已压缩的文件。到目前为止,我解压,删除旧文件,将新文件移动到合适的位置(这是一个源存档,因此高度分层),然后我重新压缩它。
是否可以做得更快?这将是 3 个信息:要替换的文件、要替换的目标存档以及要替换到存档中的文件的路径。
答案1
您可以分两步完成:
zip -d myjar.jar path/to/file/to/delete
jar uf myjar.jar -C base/path path/to/file/to/add
-C base/path
如果您已经位于基本目录(包含)中,则可以忽略该部分path/to/file/to/add
。
当使用 JAR 而不是普通的 ZIP 文件时,您应该养成尽可能使用jar
而不是使用的习惯;zip
它确保清单正确存储。
使用普通 ZIP 文件,您只需通过(重新)存档即可添加或更新文件;因此,不要使用上面的命令,而是jar
使用:
zip myzip.zip path/to/file/to/add
您需要位于基本目录中才能正常工作。 (也可以工作,但是在使用 ZIP 文件时jar
需要这样做很奇怪。)jar