资讯专栏INFORMATION COLUMN

jar命令浅析

wmui / 2227人阅读

摘要:命令浅析文件的全称是,意思是档案文件,通常文件是一种压缩文件,并且与常见的文件兼容,两者的区别便是拥有清单文件,这个文件是生成文件时自动创建的。首先输入命令,系统会自动提示命令的用法。

jar命令浅析

 JAR文件的全称是Java Archive File,意思是java档案文件,通常JAR文件是一种压缩文件,并且与常见的Zip文件兼容,两者的区别便是JAR拥有清单文件 (META-INF/MANIFEST.MF),这个文件是生成JAR文件时自动创建的。
 jar在安装JDK时会自动安装,在bin目录里面,Windows里是jar.exe,Lunix里是jar。
 首先输入jar命令,系统会自动提示jar命令的用法。(运行dos命令使用的是Cmder软件,代码前面的“λ”不用输入)

λ jar
用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
选项:
    -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/ .
jar文件结构类型

举例:

原文件目录结构为:

****
    ├ Foder
    |     ├file1
    |     ├file2
    └ file3

则其生成的jar文件构内部目录结构:

****.jar
    ├ META-INF
    │ └ MANIFEST.MF(清单文件)
    ├ Foder
    |     ├file1
    |     └file2
    └ file3
命令实例讲解 1.jar cf .............

创建jar文件
语法如下:

jar cf ****.jar file1 file2 ....

 创建****.jar,并将file1,file2 (jar命令可以指定多个文件) 添加到****.jar包中,如****.jar存在,则覆盖。

jar cf ****.jar folderName

 创建****.jar,并将folderName文件夹下所有文件添加到 ****.jar包中,如****.jar存在,则覆盖。

2.jar cvf .............

创建jar文件,并且显示压缩过程
会输出类似下面的信息。

已添加清单
正在添加: lzj.iml(输入 = 81) (输出 = 75)(压缩了 7%)
........

语法与第一个命令相似

3.jar cvfM .............

创建jar文件,但不添加清单文件,并且显示压缩过程.
会输出类似下面的信息。

正在添加: lzj.iml(输入 = 81) (输出 = 75)(压缩了 7%)
........

语法与第一个命令相似

4.jar cvfm ...........

创建jar文件,自定义清单文件内容,并且显示压缩过程.
语法:

jar cvfm ****.jar ****.mf(大小写皆可) FileName

在原有清单文件基础上增加****.mf文件的内容(不论名称是什么都可以,但是jar包只认manifest.MF,所以系统会自动完成转化)
清单文件可直接编辑,但有相应的内容格式要求,这里不做过多介绍。

5.jar tf ............

查看jar包文件。
例如

λ jar tf lzj.jar
META-INF/
META-INF/MANIFEST.MF
lzj.iml

如果JAR包内文件非常多可使用(命令行窗口显示的行数有限)
jar tf lzj.jar > lzj.txt
此时将不再返回信息,文件夹下会生成一个txt文件,里面保存着相应的信息。
加v,详细的查看jar包文件
即jar tvf ............
例如

λ jar tvf lzj.jar
     0 Sat Jul 20 16:18:02 CST 2019 META-INF/
    69 Sat Jul 20 16:18:02 CST 2019 META-INF/MANIFEST.MF
    81 Sun Dec 16 16:13:00 CST 2018 lzj.iml

也可生成txt文件。

6.jar xf ................

解压缩,将jar文件解压到当前目录。不返回信息。
加v,即jar xvf ................
系统会显示详细的解压过程
例如

λ jar xvf lzj.jar
  已创建: META-INF/
  已解压: META-INF/MANIFEST.MF
  已创建: lzj/
  已创建: lzj/.idea/
  已解压: lzj/.idea/compiler.xml
  已解压: lzj/.idea/encodings.xml
  已解压: lzj/.idea/misc.xml
  ................
7.jar uf ..............

语法
jar uf ****.jar file
将文件加入到jar文件中,如果有同名文件则替。
加v同样可以详细看到过程
例如

λ jar uvf lzj.jar pom.xml
正在添加: pom.xml(输入 = 502) (输出 = 267)(压缩了 46%)
jar命令扩展 jar i ****.jar

为指定的jar文件生成索引,生成在META-INF中名称为INDEX.LIST。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75515.html

相关文章

  • 安卓渗透框架-Drozer架构浅析--架构组成和自定义模块

    摘要:安卓渗透框架架构浅析架构组成和自定义模块标签空格分隔简介是开发的一款针对系统的安全测试框架。感兴趣的可以阅读的相关源码地址是一个安装在测试安卓机上轻量级,并且只申请一个权限,是为了用来和进行连接的。 安卓渗透框架-Drozer架构浅析--架构组成和自定义模块 标签(空格分隔): Drozer Android Security 1. Drozer 简介 Drozer是MWR Labs开...

    yanbingyun1990 评论0 收藏0
  • 日志框架浅析(二)

    摘要:简介依赖包解析并没有实现相应的接口所以加了一层桥接层包里面的内容来实现对的调用里面的代码很简单只有个类关键的两个类是和对应的方法源码实现了的接口调用方法获取实现了的接口并且实际代理了类所以对的所有方法调用最终调用的都是对应的方法小 SLF4J&&Log4j 简介 依赖jar包:slf4j-api-x.x.x.jar,log4j.jar,slf4j-log4j12.jar 解析 log4...

    tuomao 评论0 收藏0
  • 日志框架浅析(一)

    摘要:简介常用的日志主流框架基本上是基于搭配来实现日志输出依赖包解析我们获取日志实体代码具体获取日志实体源码这里类就必须在中声明并且通过调用获取一个实现了的实例这里获取单例是通过饿汉式依赖实体改成依赖一个接口是否更加优雅然后通过的 SLF4J&&Logback 简介 常用的日志主流框架基本上是基于slf4j搭配logback来实现日志输出 依赖jar包:slf4j-api-x.x.x.ja...

    fsmStudy 评论0 收藏0
  • Grays Anatomy源码浅析

    摘要:在里面,最大的改变使运行时的成为可能。缺省情况下,将会在方法中计算这些,通过在加载这两个类进入虚拟机时,使用反射来计算。通过重写方法,更正获取的方式,改成使用指定的方式进行。 Grays Anatomy源码浅析 标签(空格分隔):JAVA JVM 问题排查 在知乎上看到一个问题,被R大推荐了这个线上排查的工具,就下来用了用,感觉还不错,知道是Java写的后,就行看看源码,相关知识比较...

    verano 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<