jar包解压与压缩

您所在的位置:网站首页 压缩目录传递秘密 jar包解压与压缩

jar包解压与压缩

2024-03-24 15:21| 来源: 网络整理| 查看: 265

Jar 命令快速解决方案解压Jar包, 可用unzip解压jar包mkdir workcp demo.jar workcd work/unzip demo.jar修改完成后,压缩jar包# 记得一定要删除work目录下无用的文件,否则打包的时候就会一起打进去rm -rf demo.jarjar cvfM0 demo.jar *更详细的使用​创建jar包jar cf hello.jar hello

利用test目录生成hello.jar包,如hello.jar存在,则覆盖

创建并显示打包过程jar cvf hello.jar hello

利用hello目录创建hello.jar包,并显示创建过程例:

jar cvf hello.jar hello

标明清单(manifest) 增加:hello/(读入= 0) (写出= 0)(存储了 0%) 增加:hello/TestServlet2.class(读入= 1497) (写出= 818)(压缩了 45%) 增加:hello/HelloServlet.class(读入= 1344) (写出= 736)(压缩了 45%) 增加:hello/TestServlet1.class(读入= 2037) (写出= 1118)(压缩了 45%)

显示jar包jar tvf hello.jar

查看hello.jar包的内容。指定的jar包必须真实存在,否则会发生FileNoutFoundException。

解压jar包jar xvf hello.jar

解压hello.jar至当前目录

jar中添加文件jar uf hello.jar HelloWorld.java

将HelloWorld.java添加到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的作用,后面会提到.

忽略manifest.mf文件jar cvfM hello.jar hello

生成的jar包中不包括META-INF目录及manifest.mf文件

加-C应用jar cvfm hello.jar mymanifest.mf -C hello/

表示在切换到hello目录下然后再执行jar命令

-i为jar文件生成索引列表jar i hello.jar

当一个jar包中的内容很好的时候,你可以给它生成一个索引文件,这样看起来很省事。 执行完这条命令后,它会在hello.jar包的META-INF文件夹下生成一个名为INDEX.LIST的索引文件,它会生成一个列表,最上边为jar包名。

导出解压列表jar tvf hello.jar >hello.txt

如果你想查看解压一个jar的详细过程,而这个jar包又很大,屏幕信息会一闪而过,这时你可以把列表输出到一个文件中,慢慢欣赏!

参数中文解释用法: jar [OPTION...] [ [--release VERSION] [-C dir] files] ...jar 创建类和资源的档案, 并且可以处理档案中的单个类或资源或者从档案中还原单个类或资源。 示例: # 创建包含两个类文件的名为 classes.jar 的档案: jar --create --file classes.jar Foo.class Bar.class # 使用现有的清单创建档案, 其中包含 foo/ 中的所有文件: jar --create --file classes.jar --manifest mymanifest -C foo/ . # 创建模块化 jar 档案, 其中模块描述符位于 # classes/module-info.class: jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0 -C foo/ classes resources # 将现有的非模块化 jar 更新为模块化 jar: jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0 -C foo/ module-info.class # 创建包含多个发行版的 jar, 并将一些文件放在 META-INF/versions/9 目录中: jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes要缩短或简化 jar 命令, 可以在单独的文本文件中指定参数,并使用 @ 符号作为前缀将此文件传递给 jar 命令。 示例: # 从文件 classes.list 读取附加选项和类文件列表 jar --create --file my.jar @classes.list 主操作模式: -c, --create 创建档案 -i, --generate-index=FILE 为指定的 jar 档案生成 索引信息 -t, --list 列出档案的目录 -u, --update 更新现有 jar 档案 -x, --extract 从档案中提取指定的 (或全部) 文件 -d, --describe-module 输出模块描述符或自动模块名称 在任意模式下有效的操作修饰符: -C DIR 更改为指定的目录并包含 以下文件 -f, --file=FILE 档案文件名。省略时, 基于操作 使用 stdin 或 stdout --release VERSION 将下面的所有文件都放在 jar 的版本化目录中 (即 META-INF/versions/VERSION/) -v, --verbose 在标准输出中生成详细输出 在创建和更新模式下有效的操作修饰符: -e, --main-class=CLASSNAME 捆绑到模块化或可执行 jar 档案的独立应用程序 的应用程序入口点 -m, --manifest=FILE 包含指定清单文件中的 清单信息 -M, --no-manifest 不为条目创建清单文件 --module-version=VERSION 创建模块化 jar 或更新 非模块化 jar 时的模块版本 --hash-modules=PATTERN 计算和记录模块的散列, 这些模块按指定模式匹配并直接或 间接依赖于所创建的模块化 jar 或 所更新的非模块化 jar -p, --module-path 模块被依赖对象的位置, 用于生成 散列 只在创建, 更新和生成索引模式下有效的操作修饰符: -0, --no-compress 仅存储; 不使用 ZIP 压缩 其他选项: -?, -h, --help[:compat] 提供此帮助,也可以选择性地提供兼容性帮助 --help-extra 提供额外选项的帮助 --version 输出程序版本 如果模块描述符 'module-info.class' 位于指定目录的 根目录中, 或者位于 jar 档案本身的根目录中, 则 该档案是一个模块化 jar。以下操作只在创建模块化 jar, 或更新现有的非模块化 jar 时有效: '--module-version', '--hash-modules' 和 '--module-path'。 如果为长选项提供了必需参数或可选参数, 则它们对于 任何对应的短选项也是必需或可选的。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3