命令行对jar包的解压和压缩

把经常用的放到开始吧!!

1、解压某个jar包:在需要解压的jar包目录下,按住shift建右击【在此处打开命令行】,输入:C:jar>jar xf lm.jar 没有任何反应就表示解压成功。
2、压缩jar包:命令:jar cvf lm.jar 文件1 文件2 文件3 文件4          回车      压缩后的jar包就在本目录下,这样容易丢掉文件,可以这样

命令jar cvf lm.jar ./  就全部压缩了

下面试详细的的百度内容,如有需要可以参考:

 我们经常见到的jar包是jar命令生成的,Java语言为我们在安装jdk的时候,就随jdk为我们在bin目录中安装好了,在windows系统中是jar.exe程序,Linux系统中为jar文件。

jar命令有生成,查看,更新或解开jar包的作用。jar包与其他的压缩包很相似,不过它包含了META-INF/MANIFEST.MF文件,它是jar包生成的时候,自动创建的。

jar命令的参数详解:

C:>jar cf lm.jar
'c' 标志要求指定清单或输入文件!
用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
选项包括:
-c 创建新的归档文件
-t 列出归档目录
-x 解压缩已归档的指定(或所有)文件
-u 更新现有的归档文件
-v 在标准输出中生成详细输出
-f 指定归档文件名
-m 包含指定清单文件中的清单信息
-e 为捆绑到可执行 jar 文件的独立应用程序
指定应用程序入口点
-0 仅存储;不使用任何 ZIP 压缩
-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/ .

实例1.
C:>jar cf lm.jar Lm.class Lm.java

结果:在c盘下创建了Executable Jar File类型的lm.jar包。

实例2.添加v参数显示打包详细过程,

C:jar>jar cvf lm.jar Lm.class
标明清单(manifest)
增加:Lm.class(读入= 410) (写出= 283)(压缩了 30%)

其中c参数表示创建jar包,f参数是指定的jar包文件名。在使用jar命令的时候,要指定必须的参数,告诉他你要做什么操作。这些参数包括

-c 创建新的归档文件
-t 列出归档目录
-x 解压缩已归档的指定(或所有)文件
-u 更新现有的归档文件

实例3.运行刚生成的jar包:

C:>java -jar lm.jar
Failed to load Main-Class manifest attribute from
lm.jar

根据英文错误提示,好像读取lm.jar包的manifest属性失败。

实例4.创建不包含META-INF/MANIFEST.MF文件的jar包

C:jar>jar cvfM lm1.jar Lm.class
增加:Lm.class(读入= 410) (写出= 283)(压缩了 30%)

实例5.显示jar包中的文件

C:jar>jar tf lm.jar
META-INF/
META-INF/MANIFEST.MF
Lm.class

实例6.由于创建jar包的时候用了M参数所以就没有META-INF目录和META-INF/MANIFEST.MF文件

C:jar>jar tf lm1.jar

Lm.class

实例7.显示jar包的文件和文件详细信息


C:jar>jar tvf lm.jar
0 Mon Sep 26 23:09:34 CST 2011 META-INF/
75 Mon Sep 26 23:09:34 CST 2011 META-INF/MANIFEST.MF
410 Mon Sep 26 22:09:00 CST 2011 Lm.class

这些详细信息包括读入的字节,jar包中读入的时间,目录或文件名

实例8.解压jar包到当前目录中


C:jar>jar xf lm.jar

不显示任何信息,但是解压成功

原文地址:https://www.cnblogs.com/latter/p/6086483.html