如何删除jar包中的指定文件呢?
当然使用解压缩软件(rar,zip,7z)肯定没问题.但是我想自动化,图形界面的工具就无能为力了.
核心方法:
/*** * 删除jar包中的内容 * @param jarPath * @param fileName : "META-INF/BCKEY.DSA" * @throws IOException * @throws ArchiveException */ public static void deleteFileInJar(String jarPath,String fileName) throws IOException, ArchiveException{ List<String>fileNames=new ArrayList<String>(); if(!ValueWidget.isNullOrEmpty(fileName)){ fileNames.add(fileName);} deleteFileInJar(jarPath, fileNames); } /** * 删除jar包中的内容 * @param jarPath * @param fileNames : ["META-INF/BCKEY.DSA"],注意斜杠 * @throws IOException * @throws ArchiveException */ public static void deleteFileInJar(String jarPath,List<String>fileNames) throws IOException, ArchiveException{ List<ZipFileBean> zipFiles = CompressZipUtil .deCompressRecursionFileList(jarPath, "", true); List<ZipApkFile> zipApkFiles = extendZipFileBean(zipFiles,fileNames); CompressZipUtil.setPrint(false); File newFile=new File(jarPath + ".bak"); while(newFile.exists()){ //若bak文件存在,则循环修改名称,只到文件不存在 System.out.println("file exist:"+newFile.getAbsolutePath()); newFile=new File(jarPath + RandomUtils.getTimeRandom2()); } CompressZipUtil.persistenceZip(newFile, zipApkFiles); File jarFile=new File(jarPath); System.out.println("delete old jar:"+jarFile.getAbsolutePath()); boolean isSuccess=jarFile.delete(); if(!isSuccess){ System.out.println("删除失败:"+jarFile.getAbsolutePath()); }else{ System.out.println("modify name"); newFile.renameTo(jarFile); } }
使用说明:
比如我想删除jar(zip)包中的config\manual.properties
zip包结构:
main方法如下:
public static void main(String[] args) throws IOException, ArchiveException { String jarPath="D:\\bin\\config\\config.zip"; deleteFileInJar(jarPath, "config/manual.properties"/*"META-INF/BCKEY.DSA"*/); System.out.println("jarPath:"+jarPath); }
测试项目(ios_push_deleteBCKEY_DSA)见附件
依赖的jar见附件
相关推荐
如果下载后无法直接运行,则查看电脑是否有F盘,如果没有,可修改jar包中的配置文件,将默认路径设置到其他盘,如C盘 说明: 1、这是myDownloader2.0自制下载器,在1.0版本的基础上做了修正和功能上的扩展; 2、该...
norevoke一个可以备份文件小工具 创作动机是备份QQ撤回的消息工作原理 监听指定目录的文件修改事件,任何指定时间内(默认130秒--超过可撤回的限制120秒)创建的文件备份到jar包自创的文件夹内,并删除jar包中超时的...
规则 6.5 将所有安全敏感代码都放在一个jar包中,签名再加密 规则 6.6 不要信任环境变量的值 规则 6.6 生产代码不能包含任何调试入口点 规则 7.1 禁止在日志中保存口令、密钥和其他敏感数据 规则 7.2 禁止使用私有...
如果未指定文件系统,将使用现有的文件系统格式。 Map 显示驱动器号与物理设备名称的映射。该信息在运行 fixboot 和 fixmbr 命令时非常有用。 map 命令仅在使用故障恢复控制台时才可用。 Map [ arc] ...
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
实例129 统计指定文件中的字符个数 183 实例130 对象的序列化与反序列化 185 实例131 同时显示多个文件 187 实例132 生成zip压缩文件 189 实例133 解压缩zip文件 192 实例134 生成Excel文件 194 ...
java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...
实例129 统计指定文件中的字符个数 183 实例130 对象的序列化与反序列化 185 实例131 同时显示多个文件 187 实例132 生成zip压缩文件 189 实例133 解压缩zip文件 192 实例134 生成Excel文件 194 实例135 读取Excel...
实例129 统计指定文件中的字符个数 183 实例130 对象的序列化与反序列化 185 实例131 同时显示多个文件 187 实例132 生成zip压缩文件 189 实例133 解压缩zip文件 192 实例134 生成Excel文件 ...
实例129 统计指定文件中的字符个数 183 实例130 对象的序列化与反序列化 185 实例131 同时显示多个文件 187 实例132 生成zip压缩文件 189 实例133 解压缩zip文件 192 实例134 生成Excel文件 194 实例135 读取Excel...
实例129 统计指定文件中的字符个数 183 实例130 对象的序列化与反序列化 185 实例131 同时显示多个文件 187 实例132 生成zip压缩文件 189 实例133 解压缩zip文件 192 实例134 生成Excel文件 194 实例135 读取...
java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...
java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...
java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...
java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...
java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...