class文件夹打jar包

来源:互联网 发布:淘宝访客来源 编辑:程序博客网 时间:2024/05/17 00:55
<span style="font-size:14px;">package com.xx.thriftgen;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.jar.JarOutputStream;import java.util.zip.ZipEntry;/** * class目录打jar包的工具类 */public class JarPackUtil {public static void packJar(File classesDir, File jarFile) throws IOException {File classes = classesDir;File jar = jarFile;// 检测不小心传点颠倒了参数if (jar.isDirectory() && classes.isFile()) {jar = classesDir;classes = jarFile;}JarOutputStream jos = new JarOutputStream(new FileOutputStream(jar));packJar(jos, classes.getAbsolutePath().length(), classes, new byte[2048]);jos.close();}private static void packJar(JarOutputStream jos, int rootPathLen, File classesDir, byte[] buf4Copy)throws IOException {for (File file : classesDir.listFiles()) {String path = file.getAbsolutePath();if (file.isDirectory()) {packJar(jos, rootPathLen, file, buf4Copy);} else {String relativePath = path.substring(rootPathLen).replace('\\', '/');jos.putNextEntry(new ZipEntry(relativePath));FileInputStream input = new FileInputStream(file);int bytesRead;while ((bytesRead = input.read(buf4Copy)) != -1) {jos.write(buf4Copy, 0, bytesRead);}input.close();jos.flush();jos.closeEntry();}}}}</span>

0 0
原创粉丝点击