java吧 关注:1,293,009贴子:12,824,146
  • 0回复贴,共1

转贴 jar打包程序

取消只看楼主收藏回复

/**   
    *       功能:文件夹的压缩打包(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(); 
        } 
    } 

研究下


1楼2008-01-14 12:32回复