| //------------------------------------------------------------------------------ |
| //Copyright (c) 2005, 2007 IBM Corporation and others. |
| //All rights reserved. This program and the accompanying materials |
| //are made available under the terms of the Eclipse Public License v1.0 |
| //which accompanies this distribution, and is available at |
| //http://www.eclipse.org/legal/epl-v10.html |
| // |
| //Contributors: |
| //IBM Corporation - initial implementation |
| //------------------------------------------------------------------------------ |
| package org.eclipse.epf.search.utils; |
| |
| import java.io.BufferedInputStream; |
| import java.io.BufferedOutputStream; |
| import java.io.File; |
| import java.io.FileInputStream; |
| import java.io.FileOutputStream; |
| import java.io.IOException; |
| import java.util.zip.ZipEntry; |
| import java.util.zip.ZipOutputStream; |
| |
| public class JarCreator { |
| |
| public static final String INDEX_JAR = "index.jar"; //$NON-NLS-1$ |
| |
| public static void main(String[] args) { |
| jarFolder(args[0]); |
| } |
| |
| public static void jarFolder(String foldername) { |
| try { |
| System.out.println("attempting to jar stuff"); //$NON-NLS-1$ |
| File jarDir = new File(foldername); |
| File jarFile = new File(foldername + File.separator + INDEX_JAR); |
| |
| jarFiles(jarDir, jarFile); |
| } catch (Exception e1) { |
| System.out.println("Exception in the jar thingy"); //$NON-NLS-1$ |
| e1.printStackTrace(); |
| } |
| } |
| |
| /** |
| * method to jar the specified dir into a jar file. non-sub-folders will be |
| * jared. |
| * |
| * @param jarDir |
| * @param jarFile |
| * @throws IOException |
| */ |
| public static void jarFiles(File jarDir, File jarFile) throws IOException { |
| File[] files = jarDir.listFiles(); |
| if (jarFile.exists()) { |
| jarFile.delete(); |
| } |
| BufferedOutputStream bStream = new BufferedOutputStream(new FileOutputStream( |
| jarFile)); |
| ZipOutputStream zipperStream = new ZipOutputStream(bStream); |
| |
| byte[] bytes = new byte[4096]; |
| for (int i = 0; i < files.length; i++) { |
| File currentFile = files[i]; |
| if (currentFile.isDirectory()) { |
| continue; |
| } |
| ZipEntry currEntry = new ZipEntry(currentFile.getName()); |
| zipperStream.putNextEntry(currEntry); |
| BufferedInputStream biStream = new BufferedInputStream(new FileInputStream( |
| currentFile)); |
| while (biStream.available() > 0) { |
| int num = biStream.read(bytes); |
| zipperStream.write(bytes, 0, num); |
| } |
| biStream.close(); |
| zipperStream.closeEntry(); |
| } |
| zipperStream.close(); |
| bStream.close(); |
| } |
| } |