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使用范例

  1. 创建jar包
    利用./目录生成hello.jar包,如hello.jar存在,则覆盖
    指令: jar cf hello.jar ./
    结果:jar命令详解_第1张图片
  2. 创建并显示打包过程
    指令:jar cvf hello.jar ./ 利用hello目录创建hello.jar包,并显示创建过程
    结果:图 1-2
    标明清单(manifest)
    增加:hello.class(读入= 2959) (写出= 1036)(存储了 64%)
    
  3. 列出jar包的内容
    指令:jar tvf hello.jar 查看hello.jar包的内容 (指定的jar包必须真实存在,否则会发生FileNoutFoundException)
    结果:
    jar命令详解_第2张图片
    更精确的列出jar包的内容
    Linux:jar tvf hello.jar | grep hello.class
    图 1-3-2

Windows:jar -tvf test.jar| findstr MessageForm.class
图1-3-3

  1. 解压jar包
    指令:jar xvf hello.jar 解压hello.jar至当前目录
    结果:
    jar命令详解_第3张图片
  2. 更新文件到jar包中
    指令: jar uvf hello.jar HelloWorld.class 将HelloWorld.class添加到hello.jar包中
    结果:
    图 1-5
  3. 创建不压缩内容jar包
    jar cvf0 hello.jar *.class 利用当前目录中所有的.class文件生成一个不压缩jar包
  4. 创建带manifest.mf文件的jar包
    jar cvfm hello.jar manifest.mf hello
    创建的jar包多了一个META-INF目录,META-INF止录下多了一个manifest.mf文件
  5. 创建带manifest.mf文件的jar包
    jar cvfM hello.jar hello 生成的jar包中不包括META-INF目录及manifest.mf文件
  6. 加-C应用:
    jar cvfm hello.jar mymanifest.mf -C hello/ 表示在切换到hello目录下然后再执行jar命令

你可能感兴趣的:(jar,java,myeclipse)