jar命令详解
一.jar命令的参数:
1.官方文档
jar命令格式: jar {ctxui} [vfmn0PMe] [jar-file] [manifest-file]
[entry-point] [-C dir] files … 其中{ctxu}这四个参数必须选选其一。
[v f m e 0 M i ]是可选参数,文件名也是必须的。-c 创建新档案-t 列出档案目录-x 从档案中提取指定的 (或所有) 文件-u 更新现有档案-v 在标准输出中生成详细输出-f 指定档案文件名-m 包含指定清单文件中的清单信息-n 创建新档案后执行 Pack200 规范化-e 为捆绑到可执行 jar 文件的独立应用程序指定应用程序入口点-0 仅存储; 不使用任何 ZIP 压缩-P 保留文件名中的前导 '/' (绝对路径) 和 ".." (父目录) 组件-M 不创建条目的清单文件-i 为指定的 jar 文件生成索引信息-C 更改为指定的目录并包含以下文件如果任何文件为目录, 则对其进行递归处理。
清单文件名, 档案文件名和入口点名称的指定顺序与 ‘m’, ‘f’ 和 ‘e’ 标记的指定顺序相同。示例 1:
将两个类文件归档到一个名为 classes.jar 的档案中:
jar cvf classes.jar Foo.class Bar.class示例 2:
使用现有的清单文件 ‘mymanifest’ 并 将 foo/ 目录中的所有文件归档到 ‘classes.jar’ 中:
jar cvfm classes.jar mymanifest -C foo/ .
2. 常用参数的通俗解释
-c 创建一个jar包
-t 显示jar中的内容列表
-x 解压jar包
-u 添加文件到jar包中
-f 指定jar包的文件名-v 生成详细的报造,并输出至标准设备
-m 指定manifest.mf文件.(manifest.mf文件中可以对jar包及其中的内容作一些一设置)
-0 产生jar包时不对其中的内容进行压缩处理
-M 不产生所有文件的清单文件(Manifest.mf)。这个参数与忽略掉-m参数的设置
-i 为指定的jar文件创建索引文件
-C 表示转到相应的目录下执行jar命令,相当于cd到那个目录,然后不带-C执行jar命
二. jar使用范例
- 创建jar包
利用./目录生成hello.jar包,如hello.jar存在,则覆盖
指令:jar cf hello.jar ./
结果:
- 创建并显示打包过程
指令:jar cvf hello.jar ./利用hello目录创建hello.jar包,并显示创建过程
结果:
标明清单(manifest) 增加:hello.class(读入= 2959) (写出= 1036)(存储了 64%) - 列出jar包的内容
指令:jar tvf hello.jar查看hello.jar包的内容 (指定的jar包必须真实存在,否则会发生FileNoutFoundException)
结果:

更精确的列出jar包的内容
Linux:jar tvf hello.jar | grep hello.class

Windows:jar -tvf test.jar| findstr MessageForm.class

- 解压jar包
指令:jar xvf hello.jar解压hello.jar至当前目录
结果:

- 更新文件到jar包中
指令:jar uvf hello.jar HelloWorld.class将HelloWorld.class添加到hello.jar包中
结果:

- 创建不压缩内容jar包
jar cvf0 hello.jar *.class利用当前目录中所有的.class文件生成一个不压缩jar包 - 创建带manifest.mf文件的jar包
jar cvfm hello.jar manifest.mf hello
创建的jar包多了一个META-INF目录,META-INF止录下多了一个manifest.mf文件 - 创建带manifest.mf文件的jar包
jar cvfM hello.jar hello生成的jar包中不包括META-INF目录及manifest.mf文件 - 加-C应用:
jar cvfm hello.jar mymanifest.mf -C hello/表示在切换到hello目录下然后再执行jar命令
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
