`

删除jar包中的指定文件

    博客分类:
  • Java
阅读更多

如何删除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见附件

 

  • 大小: 10.6 KB
  • 大小: 7 KB
0
2
分享到:
评论

相关推荐

    java-多线程下载器(支持断点续传、线程加减)包含源码和可运行jar包 第二版

    如果下载后无法直接运行,则查看电脑是否有F盘,如果没有,可修改jar包中的配置文件,将默认路径设置到其他盘,如C盘 说明: 1、这是myDownloader2.0自制下载器,在1.0版本的基础上做了修正和功能上的扩展; 2、该...

    norevoke:一个可以备份文件小工具 创作动机是备份QQ撤回的消息

    norevoke一个可以备份文件小工具 创作动机是备份QQ撤回的消息工作原理 监听指定目录的文件修改事件,任何指定时间内(默认130秒--超过可撤回的限制120秒)创建的文件备份到jar包自创的文件夹内,并删除jar包中超时的...

    华为 java 安全 编码 规范 安全篇 2.0

    规则 6.5 将所有安全敏感代码都放在一个jar包中,签名再加密 规则 6.6 不要信任环境变量的值 规则 6.6 生产代码不能包含任何调试入口点 规则 7.1 禁止在日志中保存口令、密钥和其他敏感数据 规则 7.2 禁止使用私有...

    网管教程 从入门到精通软件篇.txt

    如果未指定文件系统,将使用现有的文件系统格式。  Map  显示驱动器号与物理设备名称的映射。该信息在运行 fixboot 和 fixmbr 命令时非常有用。  map 命令仅在使用故障恢复控制台时才可用。  Map [ arc]  ...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    Java范例开发大全 (源程序)

     实例129 统计指定文件中的字符个数 183  实例130 对象的序列化与反序列化 185  实例131 同时显示多个文件 187  实例132 生成zip压缩文件 189  实例133 解压缩zip文件 192  实例134 生成Excel文件 194 ...

    JAVA_API1.6文档(中文)

    java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...

    java范例开发大全(pdf&源码)

    实例129 统计指定文件中的字符个数 183 实例130 对象的序列化与反序列化 185 实例131 同时显示多个文件 187 实例132 生成zip压缩文件 189 实例133 解压缩zip文件 192 实例134 生成Excel文件 194 实例135 读取Excel...

    java范例开发大全源代码

     实例129 统计指定文件中的字符个数 183  实例130 对象的序列化与反序列化 185  实例131 同时显示多个文件 187  实例132 生成zip压缩文件 189  实例133 解压缩zip文件 192  实例134 生成Excel文件 ...

    java范例开发大全

    实例129 统计指定文件中的字符个数 183 实例130 对象的序列化与反序列化 185 实例131 同时显示多个文件 187 实例132 生成zip压缩文件 189 实例133 解压缩zip文件 192 实例134 生成Excel文件 194 实例135 读取Excel...

    Java范例开发大全(全书源程序)

    实例129 统计指定文件中的字符个数 183 实例130 对象的序列化与反序列化 185 实例131 同时显示多个文件 187 实例132 生成zip压缩文件 189 实例133 解压缩zip文件 192 实例134 生成Excel文件 194 实例135 读取...

    JDK_1_6 API

    java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...

    JavaAPI中文chm文档 part2

    java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...

    java api最新7.0

    java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...

    JavaAPI1.6中文chm文档 part1

    java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...

    [Java参考文档]

    java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...

Global site tag (gtag.js) - Google Analytics