java压缩/解压war包

java压缩/解压war包packagecom.kingsoft.unwar;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用
package com.kingsoft.unwar;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.util.Iterator;import org.apache.commons.compress.archivers.ArchiveException;import org.apache.commons.compress.archivers.ArchiveInputStream;import org.apache.commons.compress.archivers.ArchiveOutputStream;import org.apache.commons.compress.archivers.ArchiveStreamFactory;import org.apache.commons.compress.archivers.jar.JarArchiveEntry;import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;import org.apache.commons.compress.utils.IOUtils;import org.apache.commons.io.FileUtils;/** * 处理WAR文件工具类。可压缩或解压缩WAR文件。 * * @author Xiong Shuhong(shelltea@gmail.com) */public class WarUtils { public static void unzip(String warPath, String unzipPath) { File warFile = new File(warPath); if(warFile.isDirectory()){ for(String fileName : warFile.list()){ System.out.println(fileName); if(fileName.trim().endsWith(“.war”)){ System.out.println(“————-“); warPath = warPath + File.separator + fileName; System.out.println(warPath); warFile = new File(warPath); break; } } }else{ return; } try { BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(warFile)); ArchiveInputStream in = new ArchiveStreamFactory().createArchiveInputStream(ArchiveStreamFactory.JAR, bufferedInputStream); JarArchiveEntry entry = null; while ((entry = (JarArchiveEntry) in.getNextEntry()) != null) { if (entry.isDirectory()) { new File(unzipPath, entry.getName()).mkdir(); } else { OutputStream out = FileUtils.openOutputStream(new File(unzipPath, entry.getName())); IOUtils.copy(in, out); out.close(); } } in.close(); } catch (FileNotFoundException e) { System.err.println(“未找到war文件”); } catch (ArchiveException e) { System.err.println(“不支持的压缩格式”); } catch (IOException e) { System.err.println(“文件写入发生错误”); } } public static void zip(String destFile, String zipDir) { File outFile = new File(destFile); try { outFile.createNewFile(); BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(outFile)); ArchiveOutputStream out = new ArchiveStreamFactory().createArchiveOutputStream(ArchiveStreamFactory.JAR, bufferedOutputStream); if (zipDir.charAt(zipDir.length() – 1) != ‘/’) { zipDir += ‘/’; } Iterator files = FileUtils.iterateFiles(new File(zipDir), null, true); while (files.hasNext()) { File file = files.next(); ZipArchiveEntry zipArchiveEntry = new ZipArchiveEntry(file, file.getPath().replace( zipDir.replace(“/”, “\\”), “”)); out.putArchiveEntry(zipArchiveEntry); IOUtils.copy(new FileInputStream(file), out); out.closeArchiveEntry(); } out.finish(); out.close(); } catch (IOException e) { System.err.println(“创建文件失败”); } catch (ArchiveException e) { System.err.println(“不支持的压缩格式”); } } public static void main(String[] args) { new WarUtils().unzip(“C:\\nihao”, “C:\\nihao”);; } }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186059.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何退出Vi或Vim编辑器「建议收藏」

    如何退出Vi或Vim编辑器「建议收藏」Thevieditorisconfusingifyou’renotusedtoit.Ittakesasecrethandshaketoescapethisapplicationifyou’vestumbledintoit.Here’showtoquitviorvimonLinux,macOS,oranyotherUnix-…

    2022年9月30日
    3
  • pytorch安装详细步骤[通俗易懂]

    pytorch安装详细步骤[通俗易懂]环境:win10+anaconda注:anaconda安装步骤略,以下步骤默认anaconda已安装。(三)安装pytorch3.1创建虚拟环境<1>打开anacondaprompt<2>打开AnacondaPrompt之后,在命令行输入:condacreate–namepytorchpython=3.8.1注意,这里的pytorch是虚拟环境的名称,可随意取。3.8.1是我机器上的python版本,可结合自己安装的python版本灵活

    2022年6月24日
    49
  • git 命令怎么删除本地分支「建议收藏」

    git 命令怎么删除本地分支「建议收藏」查看所有分支查看项目的分支:包括本地和远程gitbranch-a删除本地分支gitbranch-dgitbranch-d分支名-d是–delete的缩写,在使用–delete删除分支时,该分支必须完全和它的上游分支merge完成。如果没有完成merge就会报下面的gitbranch-dSP_4.3.0_previewerror:Thebranch’SP_4.3.0_preview’isnotfullymerged.If

    2022年10月17日
    2
  • 前端网页技术之 Vue

    前端网页技术之 Vue文章目录VueVue概念同类产品官网特点渐进式框架入门案例.html改造入门案例.htmlMVVM框架基础语法运算符operator方法methodsVue解析数据三种data值的写法高级用法:v-命令指令集双向绑定v-model闪现v-cloak判断v-if循环v-for事件v-on绑定v-bind小结Vue组件概述使用测试Vue路由概述使用步骤入门案例Vue的AjaxAjax概述Ajax原理axios测试常见错误Vue的生命周期lifecycle概述测试扩展:观察者设计模式HBuilde

    2022年6月17日
    47
  • java编程中开头public是什么意思?

    java编程中开头public是什么意思?public关键字是和访问权限相关的,它所修饰的方法对所有类都是可以访问的Java中的访问权限共有四种,它们的作用范围如下图所示:注释:public里的所有类包括:在不同包内也可以访问。default访问权限又叫包访问权限:在这种权限下,可以访问在同一个包中的其他类的成员。…

    2022年7月9日
    25
  • 史上超强最常用SQL语句大全

    史上超强最常用SQL语句大全史上超强最常用SQL语句大全,)1)DDL–数据定义语言用来定义数据库对象:数据库,表,列等。关键字:create,drop,alter等2)DML–数据操作语言用来对数据库中表的数据进行增删改。关键字:insert,delete,update等3)DQL–数据查询语言用来查询数据库中表的记录(数据)。关键字:selewhere等4)DCL–数据控制语言用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT,REVOKE等

    2022年6月14日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号