/**
* 功能:文件夹的压缩打包(jar)
*
* @param inputFileName
* 被压缩或者打包的文件夹 outputFileName 压缩后或者打包的文件
*/
package test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.jar.JarEntry;
import java.util.jar.JarOutputStream;
public class Test {
public static void jar(String inputFileName, String outputFileName) throws Exception {
JarOutputStream out = new JarOutputStream(new FileOutputStream(outputFileName));
File f = new File(inputFileName);// 这里应该以那个目录为根目录,jar的根应该是这个目录下的文件
jar(out, f, "");
out.close();
}
private static void jar(JarOutputStream out, File f, String base) throws Exception {
if (f.isDirectory()) {
File[] fl = f.listFiles();
base = base.length() == 0 ? "" : base + "/";
for (int i = 0; i < fl.length; i++) {
jar(out, fl[i], base + fl[i].getName());
}
} else {
out.putNextEntry(new JarEntry(base));
FileInputStream in = new FileInputStream(f);
byte[] buffer = new byte[1024];
int n = in.read(buffer);
while (n != -1) {
out.write(buffer, 0, n);
n = in.read(buffer);
}
in.close();
}
}
public static void main(String[] args) {
try {
jar("e:\\workplace\\test\\bin", "d://test.jar");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
研究下
* 功能:文件夹的压缩打包(jar)
*
* @param inputFileName
* 被压缩或者打包的文件夹 outputFileName 压缩后或者打包的文件
*/
package test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.jar.JarEntry;
import java.util.jar.JarOutputStream;
public class Test {
public static void jar(String inputFileName, String outputFileName) throws Exception {
JarOutputStream out = new JarOutputStream(new FileOutputStream(outputFileName));
File f = new File(inputFileName);// 这里应该以那个目录为根目录,jar的根应该是这个目录下的文件
jar(out, f, "");
out.close();
}
private static void jar(JarOutputStream out, File f, String base) throws Exception {
if (f.isDirectory()) {
File[] fl = f.listFiles();
base = base.length() == 0 ? "" : base + "/";
for (int i = 0; i < fl.length; i++) {
jar(out, fl[i], base + fl[i].getName());
}
} else {
out.putNextEntry(new JarEntry(base));
FileInputStream in = new FileInputStream(f);
byte[] buffer = new byte[1024];
int n = in.read(buffer);
while (n != -1) {
out.write(buffer, 0, n);
n = in.read(buffer);
}
in.close();
}
}
public static void main(String[] args) {
try {
jar("e:\\workplace\\test\\bin", "d://test.jar");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
研究下









