1. 程式人生 > >java壓縮/解壓war包

java壓縮/解壓war包

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([email protected]) */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");; } }

相關推薦

java壓縮/war

package com.kingsoft.unwar;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java

Java 壓縮通用工具 ZIP TAR GZ

import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutp

ubuntu/linux下打包壓縮warwar和jar命令

把project_a資料夾下的檔案打包成project.war 1.      打包 jar -xvf project.war /project_a -c  建立war包 -v  顯示過程資訊 -f  指定 JAR 檔名,通常這個引數是必須的 -M  不產生所有項的清單

jar 命令歸檔warwar

jar1、將test.war包解壓到test目錄中mkdir /tmp/testcd /tmp/testjar xvf /tmp/test.war2、將test目錄歸檔為war包jar cvf /tmp/test.war -C /tmp/test .參考博文:http://www.jb51.net/artic

java壓縮檔案

記錄一下,公司在伺服器中,需要對檔案進行壓縮,然後給使用者下載故記錄一下: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOExc

Linux下 解決Tomcat8不自動war

之前買了阿里雲伺服器後配置好了jdk,Tomcat,mysql等。然後就想當然的將專案打成war包,直接拖到Tomcat的webapps下,但無論怎麼重啟專案就是不自動解壓,後來查了各方面資料,刪除這個檔案那個檔案的,差點把Tomcat搞崩潰了也沒找到原因,最後看到講一個將Tomcat裡

war並重新編譯成war

最近遇到個二手專案,只有一個war包檔案,需要解壓並修改其中一個class檔案 然後再重新打包成war包,難道還要重新部署專案環境,使用idea打war包??? 反正是很煩躁就對了 對了,先把class檔案反編譯成java檔案檢視一下 第一步:下載反編譯外掛地址

java 壓縮/ zip 多個檔案和資料夾

參考了幾篇文章,基本都是壓縮單個檔案或者一個資料夾,不能混合壓縮。 找了一個不需要額外jar包的程式碼上改的。(參考文章) 不需要額外jar包。 壓縮方法: import java.io.File; import java.io.FileInputStr

Tomcat不自動war

Tomcat 下的 config 下的  server.xml 有時候為了需要<Host appBase="" autoDeploy="true" name="localhost" unpackWARs="true">會將appBase置空,這個時候就不會自動解

linuxwar

可以用unzip命令 unzip project.war -d project 這樣就在當前目錄下解壓project.war到project目錄裡面,引數-d的意思是建立project目錄 附:unzip其它引數說明 -x "檔案列表" 解壓檔案,但不包含檔案列表中指定的檔

Tomcat下實現熱部署和自動war替換現有資料夾的操作

插播小廣告,本人的《大話Java效能優化》一書已經在亞馬遜、京東、噹噹、天貓出售,提前謝謝大家支援。 自動解壓war包替換現有資料夾的操作: 因為tomcat預設不會再次解壓已經存在的war包對應的目

Linux下使用unzip命令war

網上很多人說用jar包解壓,但jar命令解壓時不能指定目錄,推薦使用unzip解壓war包。 unzip -d 指定目錄 [[email protected] upload]# unzip -oq common.war -d common 命令名: un

unzipwar並覆蓋

file 文件名 -- 參數說明 https 除了 tro 小寫 顯示 unzip -o blog.war -d BLOG 參數: -o 不進行詢問直接覆蓋 -d 壓縮文件解壓到BLOG文件夾下 詳細使用語法: unzip [-Z] [-opts

Linux下打包壓縮war和解war

一個 命令 過程 打包 java 使用 壓縮 公司 war包 Linux下打包壓縮war和解壓war包。因為種種原因公司需要把Java程序達成war包。起先用zip命令打包,起先可以用,後來卻無法使用。今天找到一個更好的辦法。用jar命令,前提是要安裝dk。 把當前目錄下的

Linux下/打包,壓縮/命令

res file bzip2 lena dirname unzip bz2 裏的 dir .tar 解包:tar xvf FileName.tar 打包:tar cvf fileName.tar DirName tar.gz和.tgz 解壓:tar zxvf FileNam

Java基礎-壓縮

幾種實現方案 #1.基於java.util.zip; #2.使用zip4j #3.使用org.apache.tools.ant     示例程式碼 測試程式碼     <!-- Java zip &g

ZipUtil壓縮工具類——java

import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.File; import java

Linux下打包壓縮war和解war zip和jar

============jar================= 把當前目錄下的所有檔案打包成game.war jar -cvfM0 game.war ./ -c   建立war包 -v   顯示過程資訊 -f     -M -0   這個是阿拉伯數字,只打包不壓縮的

壓縮歸檔gzipzip2xzzip ar

源文件 文件夾 file 常用工具 壓縮文件 常用工具compress/uncompress.zgzip/gunzip.gzbzip2/bunzip2.bz2xz/unxz.xzzip/unzip.ziptar,cpio GZIP/GUNZIP/ZCAT,壓縮文件#gzip file 壓縮

ST MCU生成PDF+文件壓縮

需要 ren aud 文件 無奈 .com 導致 壓縮解壓 str 之前碰到過,STM32F407上做文件壓縮,無奈壓縮文件時,哈夫曼編碼需要耗費很大的RAM,導致失敗。後來在論壇壇主的幫助下,了解了LZ77壓縮。 今天看論壇的時候,了解到MCU上,用pdflib庫,可以做