jar命令简介

一、简介:

  • jar使用zip文件格式打包多个文件

二、常见的命令

操作命令
创建jar文件jar cf jar-file input-file(s)
查看jar文件jar tf jar-file
抽取jar文件的内容jar xf jar-file
从jar文件中抽取特定的内容jar xf jar-file archived-file(s)
运行打包为jar文件的应用程序(需要Main-Class头部)java -jar app.jar

三、创建jar文件

  • 命令: jar cf jar-file input-file(s)
    • c表示你想要创建jar文件
    • f表示你要创建的文件不是输出到标准输出中而是到文件当中
    • jar-file表示创建的jar文件名,以.jar结尾
    • input-file(s)表示的是要打包的文件
    • 注意:该命令会自动产生默认的清单文件
  • jar命令选项
选项描述
v创建jar文件时将在标准输出上输入详细的信息,详细信息包括加入jar文件的每一个文件的名字
0(零)jar文件不需要压缩
M将不产生默认清单文件
m用来从已有的清单文件中创建清单文件,命令基本格式是jar cmf existing-manifest jar-file input-file(s)
-C在执行该选项时,改变当前目录,并添加指定的文件

四、查看jar文件中的内容

  • 命令: jar tf jar-file
    • t表示的是你想要查看jar的内容列表
    • f选项表示的是从命令行中指定要查看的jar文件
    • jar-file:要查看的文件的路径
    • jar文件中使用的一定是相对路径

五、抽取jar文件中的内容

  • 命令: jar xf jar-file [archived-file(s)]
    • x表示的是你想从jar归档文件中抽取文件
    • f选项表示jar文件中的内容是在命令行指定的文件中读取,而不是从标准输入
    • jar-file(s)表示的是jar文件的路径
    • archived-file(s)表示的是要抽取的文件列表,当不指明时,默认抽取所有的文件

六、更新jar文件

  • 当你修改了清单文件或添加文件时,可使用jar工具提供的u选项更新已存在的jar文件
  • 命令: jar uf jar-file input-file(s)
    • u表示你想要更新现存的jar文件
    • f选项表示的是你想更新的jar文件内容来自命令行中指定的文件
    • jar-file表示要更新的jar文件的路径名
    • archived-file(s)表示的是要更新的文件名
    • 可以通过-C选项将更新内容调到到特定的目录下

七、清单文件

  • 清单文件存放在META-INF/MANIFEST.MF中
  • 清单文件的条目是以“头部: 值”的格式存在的,头部与冒号之间没有空格,而冒号与值之前有一空格隔开
  • 清单文件必须以新的一行或者换行返回结束,否则最后一行无法正确解析
  • 命令: jar cfm jar-file manifest-addition input-file(s)
    • c表示的是你想要创建jar文件
    • f表示的是你要输出到文件而不是标准输出流
    • m表示的是将你指定的文件中的内容与合并到jar文件的清单文件中
    • manifest-addition表示的是要被合并到清单文件中的内容所在的文件
    • input-file(s)表示要添加到jar文件中的所有文件,以空格分开
    • 要注意的是清单文件的编码格式一定要是utf-8
  • 清单文件的写法
    • 设置应用程序的入口
      • Main-Class: classname
      • clssname是main函数的所在的类的名字(包括包名)
    • 通过jar工具设置入口点
      • JDK6后通过e标志可以创建或重写Main-Class属性
      • 可以在创建或更新jar的时候使用该标志
      • 例如:jar cfe app.jar MyApp MyApp.class创建了jar文件,并将Main-Class属性设置为MyApp
      • 如果入口类名字在包中,则需要点号(.)作为分隔。例如:若Main.class在foo包中,命令应该写成jar cfe Main.jar foo.Main foo/Main.class
    • 引用其他的jar文件
      • 格式:Class-Path: jar1-name, jar2-name, jar3-name, directory-name/jar-name
      • 使用Class-Path这种方式指定引用jar文件的路径可以避免在运行时执行冗长的-classpath标志的情况
      • Class-Path的值只能是**本地jar或类文件,不能是内嵌在jar中或者通过网络协议得到的jar或类文件。
             例如:MyJar.jar包含MuUtils.jar文件,你不能使用MyJar.jar的清单文件来将MyUtils.jar的类文件加载到类路径当中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值