Jar命令

  • Post author:
  • Post category:其他


经常将工程打包成war包,打包如下:

// 将当前目录打包成war包

jar   cvf   temp.war   */  .

命令格式:

java cvf 打包文件名称 要打包的目录 打包文件保存路径

解压自然就是:

jar xvf temp.war

jar和linux下面的tar命令类似

Java Archive File,java存档文件。这有点类似zip文件。
1.


命令用法:jar
jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 …
选项:
-c 创建新的存档
-t 列出存档内容的列表
-x 展开存档中的命名的(或所有的〕文件
-u 更新已存在的存档
-v 生成详细输出到标准输出上
-f 指定存档文件名
-m 包含来自标明文件的标明信息
-0 只存储方式;未用ZIP压缩格式
-M 不产生所有项的清单(manifest〕文件
-i 为指定的jar文件产生索引信息
-C 改变到指定的目录,并且包含下列文件:
如果一个文件名是一个目录,它将被递归处理。
清单(manifest〕文件名和存档文件名都需要被指定,按’m’ 和 ‘f’标志指定的相同顺序。


jar


使用范例:



(1)

创建jar包


jar cf hello.jar hello

利用test目录生成hello.jar包,如hello.jar存在,则覆盖


(2)

创建并显示打包过程


jar cvf hello.jar hello

利用hello目录创建hello.jar包,并显示创建过程

例:E:\>jar cvf hello.jar hello

标明清单(manifest)

增加:hello/(读入= 0) (写出= 0)(存储了 0%)

增加:hello/TestServlet2.class(读入= 1497) (写出= 818)(压缩了 45%)

增加:hello/HelloServlet.class(读入= 1344) (写出= 736)(压缩了 45%)

增加:hello/TestServlet1.class(读入= 2037) (写出= 1118)(压缩了 45%)


(3)

显示jar包


jar tvf hello.jar

查看hello.jar包的内容

指定的jar包必须真实存在,否则会发生FileNoutFoundException。


(4)

解压jar包


jar xvf hello.jar

解压hello.jar至当前目录


(5)

jar中添加文件


jar uf hello.jar HelloWorld.java

将HelloWorld.java添加到hello.jar包中


(6)

创建不压缩内容jar包


jar cvf0 hello.jar *.class

利用当前目录中所有的.class文件生成一个不压缩jar包


(7)

创建带manifest.mf文件的jar包


jar cvfm hello.jar manifest.mf hello

创建的jar包多了一个META-INF目录,META-INF止录下多了一个manifest.mf文件,至于manifest.mf的作用,后面会提到.


(8)

忽略manifest.mf文件


jar cvfM hello.jar hello

生成的jar包中不包括META-INF目录及manifest.mf文件


(9)

加-C应用:


jar cvfm hello.jar mymanifest.mf -C hello/

表示在切换到hello目录下然后再执行jar命令


(10)

-i为jar文件生成索引列表

当一个jar包中的内容很好的时候,你可以给它生成一个索引文件,这样看起来很省事。


jar i hello.jar

执行完这条命令后,它会在hello.jar包的META-INF文件夹下生成一个名为INDEX.LIST的索引文件,它会生成一个列表,最上边为jar包名。


(11)

导出解压列表


jar tvf hello.jar >hello.txt

如果你想查看解压一个jar的详细过程,而这个jar包又很大,屏幕信息会一闪而过,这时你可以把列表输出到一个文件中,慢慢欣赏!


(12)jar -cvf hello.jar hello/*

   例如原目录结构如下:
   hello
     |---com
     |---org

部分摘自:

http://blog.csdn.net/qjyong/article/details/1658904