就是jar命令,在jdk的bin下,你看一看就知道了,其它的zip工作也行。

解决方案 »

  1.   

    \>jar cf jar-file input-file(s)
      /*
      说明,windows下和UNIX下对目录结构的分隔符习惯不同,前者为\,后者为/ ,本文仅仅为了说明问题,并不严格加以说明。——注意,无论任何平台,在manifest文件中均采用/
      */
      /*
      该形式的命令在当前目录下创建一个jar-file 
      c开关指明“创建”一个jar文件
      f开关指明输出到文件,而不是stdout(标准输出)
      jar-file如果不指明后缀,则默认为*.jar
      空格用于分隔多个输入文件,可以使用通配符“*”
      有必要时指明目录 
      开关出现的顺序不重要,但是如果有m开关则另当别论。
      该命令默认创建一个manifest文件 
      */
      /*
      对于java版本1,jar文件仅支持ASCII作文件名,java版本2则支持UTF-8编码的文件名。
      */
      /*
      关于创建,可用的其他开关:
      v 当jar文件创建时,在stderr(java版本1)或stdout(java版本2)产生冗余(verbose)输出。报告添加到jar的文件名录。
      0 (zero)指明不要压缩。
      M 指明不要产生默认的manifest文件。
      m 添加手工已编制好的manifest文件:
      \>jar cmf existing-manifest jar-file input-file(s)
      -C 在操作过程中转变目录(仅对java版本2)。
      */
      /*
      一个例子。
      假设,如下目录结构(windows下):
      TicTacToe\TicTacToe.class (文件)
      TicTacToe\audio (子目录,该层下全是au文件)
      TicTacToe\images (子目录,该层下全是gif文件)  如果要将该东东压入jar文件TicTacToe.jar,应在TicTacToe目录中(!)执行下面命令:
      TicTacToe>jar cvf TicTacToe.jar TicTacToe.class audio images
      jar程序会自动将audio和images目录及其子目录一咕脑(recursively)全压入TicTacToe.jar文件,该文件将出现于  TicTacToe\TicTacToe.jar
      因为使用了verbose output开关,可以看到类似如下的输出:
      adding: TicTacToe.class (in=3825) (out=2222) (deflated 41%)
      adding: audio/ (in=0) (out=0) (stored 0%)
      adding: audio/beep.au (in=4032) (out=3572) (deflated 11%)
      adding: audio/ding.au (in=2566) (out=2055) (deflated 19%)
      adding: audio/return.au (in=6558) (out=4401) (deflated 32%)
      adding: audio/yahoo1.au (in=7834) (out=6985) (deflated 10%)
      adding: audio/yahoo2.au (in=7463) (out=4607) (deflated 38%)
      adding: images/ (in=0) (out=0) (stored 0%)
      adding: images/cross.gif (in=157) (out=160) (deflated -1%)
      adding: images/not.gif (in=158) (out=161) (deflated -1%)  如果:
      TicTacToe>jar cvf0 TicTacToe.jar TicTacToe.class audio images
      则表示只备份不压缩。
     
      如果该目录内全是需要jar掉的文件及其相应目录结构:
      TicTacToe>jar cvf TicTacToe.jar *
      是比较简洁的写法。  如果不特别使用开关m或M,默认的manifest文件将产生于
      META-INF/MANIFEST.MF  继承了GZIP的特点,-C开关用于跳到某目录,以改变所存入jar文件的目录结构。多半用于将原来位于不同目录结构的文件作jar时聚合在一起。例如:
      TicTacToe>jar cf ImageAudio.jar -C images . -C audio .
      产生的jar文件内容和结构:
      META-INF/MANIFEST.MF
      cross.gif
      not.gif
      beep.au
      ding.au
      return.au
      yahoo1.au
      yahoo2.au
      (现在假设我们images子目录下还有子目录,像这样:
      TicTacToe\images\jpg
      jpg子目录下还有一些*.jpg文件那以上命令的结果应该是:
      META-INF/MANIFEST.MF
      jpg/AMAKUSA.jpg 
      jpg/UKYO.jpg
      cross.gif
      not.gif
      beep.au
      ding.au
      return.au
      yahoo1.au
      yahoo2.au
      说明了-C的真正含义。
      )  */
      

  2.   

    直接用winACE压缩行了
    省得那么多麻烦