如何通过Shell从Jar包指定目录删除文件?
从Jar包中删除指定文件的可行方案
修正zip命令的路径格式
你之前的命令失败是因为路径开头多了/,Jar包内的文件路径没有前置斜杠,直接使用相对路径即可:zip -d abc.jar myfolder/test1.txt执行后可以用
unzip -l abc.jar查看Jar包内容,验证文件是否已删除。使用Java自带的jar命令
若系统已安装Java环境,也可以用jar命令完成删除操作,语法如下:jar uf abc.jar --delete myfolder/test1.txt其中
uf参数表示更新Jar文件,--delete指定要移除的目标文件路径,同样不要加前置斜杠。手动解压后重新打包(适合批量操作)
如果上述命令都无法生效,或者需要批量删除文件,可以采用手动方式:- 创建临时目录并解压Jar包:
mkdir temp_unzip unzip abc.jar -d temp_unzip - 删除目标文件:
rm temp_unzip/myfolder/test1.txt - 进入临时目录重新打包:
cd temp_unzip jar cf ../abc_new.jar .
最后替换原Jar包:
mv abc_new.jar abc.jar- 创建临时目录并解压Jar包:
内容的提问来源于stack exchange,提问作者Gulgule
相关产品推荐
相关产品推荐

