1.创建JAR文件:jar cf test.jar test
该命令没有显示压缩个过程,执行结果是当前路径下的test路径下的全部内容生成一个test.jar文件。如果当前目录中已经存在test.jar文件,那么该文件将被覆盖。
2.创建JAR文件,并显示压缩过程:jar cvf test.jar test
该命令的结果同第一个命令,但由于v参数的作用,显示出了打包过程。
3.不适用清单文件:jar cvfM test.jar test
该命令的结果类似第二个命令,其中M选项表明不生成清单文件。因此生成的test.jar包中没有包含META-INF/MANIFEST.MF文件。打包过程显示信息略有差别
4.自定义清单文件内容:jar cvfm test.jar manifest.mf test
运行结果类似第二个命令,显示信息也相同,其中m选项指定读取用户清单文件信息。因此在生成的JAR包中清单文件META-INF/MANIFEST.MF的内容有所不同,它会在原有清单文件基础上增加MANIFEST.MF文件的内容。
当开发者向MANIFEST.MF清单文件中增加自己的内容时,就需要借助于自己的清单文件了,清单文件只是一个普通的文本文件,使用记事本编辑即可。清单文件的内容由如下格式的多个key-value对组成。
key:<空格>value
清单文件的内容格式要求如下:
- 每行只能定义一个key-value对,每行的key-value对之前不能有空格,即key-value对必须顶格写。
- 每组key-value对之间以“:”(英文冒号后紧跟一个英文空格)分隔,少写了冒号或者空格都是错误的。
- 文件开头不能有空行。
- 文件必须以一个空行结束。
可以将上面文件保存在任意位置,以任意文件名存放。例如保存在当前路径下,文件名为a.txt。命令如下:
jar cvfm test.jar a.txt test
5.查看JAR包内容:jar tf test.jar
在test.jar文件已经存在的前提下,使用此命令可以查看test.jar中的内容。
jar tf test.jar > a.txt
执行上面命令看不到输出,但在当前路径下有一个a.txt文件,包含了jar包内容。
6.查看JAR包详细内容:jar tvf test.jar
该命令与第五个命令基本相似,但它更详细。
7.解压缩:jar xf test.jar
将test.jar文件解压缩到当前目录下,不显示任何信息。
8.带提示信息解压缩:jar xvf test.jar
解压缩效果与第七个命令相同,但系统会显示解压过程的详细信息。
9.更新JAR文件:jar uf test.jar Hello.class
更新test.jar中的Hello.class文件。如果已存在Hello.class文件,则使用新的文件替换旧的文件;如果不存在,则添加到test.jar文件中。
10.更新时显示详细信息:jar uvf test.jar Hello.class
这个命令与第九个命令相同,也用于更新test.jar文件中的Hello.class文件,但它会显示详细的压缩信息
清单文件MANIFEST.MF文件至少需要如下两行:
Manifest-Version: 1.0
Created-By: 1.8.0 (Oracle Corporation)