jar 解压war_war包解压命令

2022-11-09 15:22:42 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

文章来源:

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.cn/185805.html原文链接:https://javaforall.cn

0 人点赞