jar 解压war_war包解压命令

jar 解压war_war包解压命令文章来源:java实现可压缩或解压缩WAR文件packageutils;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;impo…

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

Jetbrains全系列IDE稳定放心使用

文章来源:

java实现可压缩或解压缩WAR文件

package utils;

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

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(“不支持的压缩格式”);

}

}

}

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

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

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


相关推荐

  • NETCms教程_html控制台

    NETCms教程_html控制台NETCms教程 1.安装 2.下载 3.模板与标签制作(一) 模板与标签制作(一)http://www.aspxcms.com/tech/2/http://www.aspxcms.com/tech/2.rar4.模板与标签制作(二)模板与标签制作(二)http://www.aspxcms.com/tech/3/http://www.aspxcms.

    2022年9月30日
    2
  • Python中的log文件(详细教程)

    Python中的log文件(详细教程)

    2020年11月8日
    346
  • jquery的ajax跨域解决方案「建议收藏」

    jquery的ajax跨域解决方案「建议收藏」ajax是一种无刷新技术,在web开发中占有举足轻重的作用,但是由于安全问题,ajax在跨域时候并不支持post。现在笔者写个采用getJSON的方式实现跨域的实例来供大家参考。

    2022年8月24日
    5
  • Zookeepers_docker workdir

    Zookeepers_docker workdir文章目录Curator客户端创建会话创建节点获取节点和数据更新数据删除节点事务节点存在事件监听其他工具类开发测试Curator客户端Curator包含了几个包:curator-framework:对zookeeper的底层api的一些封装curator-client:提供一些客户端的操作,例如重试策略等curator-recipes:封装了一些高级特性,如:Cache事件监听、选举…

    2025年8月6日
    2
  • java面向对象三大特征及五大原则

    java面向对象三大特征及五大原则java面向对象一、java面向对象的三大特征1、封装(Encapsulation)封转是指属性私有化根据需要提供setter和getter方法来访问属性隐藏具体属性和实现细节,仅对外开放接口控制程序中属性的访问级别目的:增强数据安全性,不能让其他用户随意访问和修改数据,简化编程,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员2、继承(Extend)继承是指将…

    2022年7月25日
    6
  • 群晖 docker 端口_群晖 l2tp

    群晖 docker 端口_群晖 l2tp最近群晖docker某个容器端口总是被扫描,系统自动封禁了很多IP,遂想更改端口,个人对Linux和docker非常不熟悉,只做记录,如有错误,欢迎指出流程分为以下几个步骤:停止容器修改端口映射重启docker停止容器首先用dockerps命令查看所有的容器名称和id例如容器ID为a1b2c3用dockerstopa1b2c3来停止容器修改端口映射修改端口映射主要在了两个文件hostconfig.json和config.v2.json下面是如何找到这两个文件的路径利用cd/v

    2022年10月18日
    3

发表回复

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

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