如何解压一个被加密的zip文件,并且该密码我是知道的,怎么样让用户输入密码,通过java的zipfile去解压缩。现在我在java中把zip文件作为bufferedinputstream,这个流没有读取密码的能力。具体怎么实现呢!

解决方案 »

  1.   

    From Think in java 第10章 Java IO系统
    "虽然Zip格式提供了设置密码的方法,但Java的Zip库没有提供这方面的支持。"
    你只有通过jni调用C++来执行,如下:
    http://www.cnnie.net/bbs/viewthread.php?tid=66
      

  2.   

    用java调用winrar的内部
    try{
    Runtime.getRuntime().exec("cmd /C start winrar.exe "+parameter);
    }catch(Exception e){}
      

  3.   

         try{
                     //假设winrar目录在c:\\winrar,zip在f盘,密码是12
    Process pp = Runtime.getRuntime().exec( "cmd /c start c:\\winrar\\rar.exe e  f:\\email.zip –hp12");
    if (pp.waitFor() == 0) {
      System.out.println("处理过程正确返回!");   
    }
                  } catch(Exception e){System.out.println(e);}