亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么進行壓縮jar

發布時間:2021-10-20 10:10:48 來源:億速云 閱讀:248 作者:柒染 欄目:大數據

本篇文章為大家展示了怎么進行壓縮jar,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

場景

  • 頁面上傳jar包

  • 后臺解壓jar包

  • 頁面展示所有package

  • 選擇一個package

  • 頁面顯示class和子package

    • 選擇class,進入class解析頁面

    • 選擇package,顯示class和子package

壓縮成jar

package com.wuxiongwei.java.jar2;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.CRC32;
import java.util.zip.CheckedOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
 * 非常好的工具類 <br>
 * 壓縮成jar.
 * @author
 * @version 1.0.0
 */
public class JarCompressor {

    private static Log log = LogFactory.getLog(JarCompressor.class);

    private static final int BUFFER = 8192;

    private File fileName;

    private String originalUrl;

    public JarCompressor(String pathName) {
        fileName = new File(pathName);
    }

    public void compress(String... pathName) {
        ZipOutputStream out = null;
        try {
            FileOutputStream fileOutputStream = new FileOutputStream(fileName);
            CheckedOutputStream cos = new CheckedOutputStream(fileOutputStream,
                    new CRC32());
            out = new ZipOutputStream(cos);
            String basedir = "";
            for (int i = 0; i < pathName.length; i++) {
                compress(new File(pathName[i]), out, basedir);
            }
            out.close();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    public void compress(String srcPathName) {
        File file = new File(srcPathName);
        if (!file.exists())
            throw new RuntimeException(srcPathName + "不存在!");
        try {
            FileOutputStream fileOutputStream = new FileOutputStream(fileName);
            CheckedOutputStream cos = new CheckedOutputStream(fileOutputStream,
                    new CRC32());
            ZipOutputStream out = new ZipOutputStream(cos);
            String basedir = "";
            compress(file, out, basedir);
            out.close();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    private void compress(File file, ZipOutputStream out, String basedir) {
        /* 判斷是目錄還是文件 */
        if (file.isDirectory()) {
            this.compressDirectory(file, out, basedir);
        } else {
            this.compressFile(file, out, basedir);
        }
    }

    /**
     *  壓縮目錄
     * @param dir
     * @param out
     * @param basedir
     */
    private void compressDirectory(File dir, ZipOutputStream out, String basedir) {
        if (!dir.exists())
            return;

        File[] files = dir.listFiles();
        for (int i = 0; i < files.length; i++) {
            /* 遞歸 */
            compress(files[i], out, basedir + dir.getName() + "/");
        }
    }

    /**
     * 壓縮文件
     * @param file
     * @param out
     * @param basedir
     */
    private void compressFile(File file, ZipOutputStream out, String basedir) {
        if (!file.exists()) {
            return;
        }
        try {
            BufferedInputStream bis = new BufferedInputStream(
                    new FileInputStream(file));
            String filePath = (basedir + file.getName())
                    .replaceAll(getOriginalUrl() + "/", "");
            log.info("壓縮文件:" + filePath);
            ZipEntry entry = new ZipEntry(filePath);
            out.putNextEntry(entry);
            int count;
            byte data[] = new byte[BUFFER];
            while ((count = bis.read(data, 0, BUFFER)) != -1) {
                out.write(data, 0, count);
            }
            bis.close();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    public static void main(String[] args) {
        JarCompressor zc = new JarCompressor("/Users/mac/Documents/other/bw2/test.jar");
        zc.compress("/Users/mac/Documents/other/bw2/test/");
    }

    public String getOriginalUrl() {
        return originalUrl;
    }

    public void setOriginalUrl(String originalUrl) {
        this.originalUrl = originalUrl;
    }

}

上述內容就是怎么進行壓縮jar,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

姜堰市| 麻江县| 双江| 论坛| 青浦区| 枣阳市| 临泽县| 杭锦旗| 阿拉善右旗| 龙井市| 固镇县| 温州市| 卢龙县| 宁武县| 巫山县| 温泉县| 阳朔县| 兴化市| 淳化县| 南宁市| 陈巴尔虎旗| 井冈山市| 武夷山市| 稷山县| 巴彦县| 邛崃市| 江城| 金门县| 栾川县| 凤翔县| 侯马市| 北宁市| 吉林市| 乌鲁木齐县| 天气| 报价| 馆陶县| 周至县| 昆明市| 滨州市| 库伦旗|