怎么进行压缩jar

本篇文章为大家展示了怎么进行压缩jar,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

10年积累的成都网站设计、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有云南免费网站建设让你可以放心的选择与我们合作。

场景

  • 页面上传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;
/**
 * 非常好的工具类 
 * 压缩成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,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


分享名称:怎么进行压缩jar
当前URL:http://cdiso.cn/article/pgojcs.html

其他资讯