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”);; } }

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • SCSA考试大纲[通俗易懂]

    SCSA考试大纲[通俗易懂]认证考试形式和结构一、试卷满分及时间试卷满分为120分,考试时间为80分钟,80分通过二、考试形式在线考试三、答题方式闭卷四、试卷内容知识结构试题比例网络基础15%信息安全基础5%数据传输安全15%上网行为安全30%边界安全20%…

  • vue子组件向父组件传值的三种方式_vue子组件修改父组件值

    vue子组件向父组件传值的三种方式_vue子组件修改父组件值如需了解老子怎么控制儿子的,传送门:子组件child.vue<template><div><button@click=”$emit(’emit’,’方式1:传参给父组件第1个参数’,’方式1:传参给父组件第2个参数’,’…’)”>方式1:通过emit传参给父组件(推荐此方式)</button><button@click=”emit(‘方式2:传参给父组件第1个参数’,’方式2…

  • 批处理for命令的用法_批处理主要解决

    批处理for命令的用法_批处理主要解决1.前言for是批处理中最复杂,也最强大的关键字。熟练掌握for的用法,才可能理解批处理的强大之处。2.基本用法2.1.概念for是对一组文件中的每一个文件执行某个特定命令。FOR%variableIN(set)DOcommand[command-parameters]%variable,指定一个单一字母可替换的参数。(set),指定一个或一组文…

  • Linux系统打不开gedit文本编辑器

    Linux系统打不开gedit文本编辑器写实验发现打不开gedit,报错如下:Unabletoinitserver:无法连接:拒绝连接(gedit:1289):Gtk-WARNIING**:20:46:00.562:cannotopendisplay于是收录各种gedit不能用原因如下(错误提示不一定和上面一样):原因1:vnc连接被禁用了。这种情况下一般虚拟机也没连上网(打开浏览器显示没网),打开虚拟机设置>选项>vnc连接,启用。具体参数设置可看链接(Vmware官网,将虚拟机配置为V..

  • linux添加路由网关_linux删除默认网关

    linux添加路由网关_linux删除默认网关1、以前经常使用route命令添加和删除路由添加网关/设置网关:routeadd-net192.100.10.0netmask255.255.255.0deveth0#增加一条到达192.100.10.0的路由。屏蔽一条路由:routeadd-net192.100.10.0netmask255.255.255.0reject#增加一…

  • 电脑蓝屏0x000000f4解决步骤_0x000000c4开机就蓝屏

    电脑蓝屏0x000000f4解决步骤_0x000000c4开机就蓝屏电脑蓝屏的问题是大家最常见到的电脑问题之一,大多时候蓝屏故障的出现都和软件有关,少数为硬件不兼容或者故障导致。这里粗略的分析下STOP:0x000000F4字段的问题,仅做参考!以下先来看看网友是怎么分析与解决问题的吧!蓝屏代码0x000000f4原因分析:知道了原因,那么就下手解决类似问题就轻松了。1.先从软处着手,如运行莫软件导致错误,建议重装该软件,一般均可解决。2.考虑是否有其它软件同时运行导致冲突的或者主机配置内存过小导致内存溢出或者耗竭的(如采用XP系统建议配置512MB内存以上或.

发表回复

您的电子邮箱地址不会被公开。

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