一、jar命令作用:
进行打包 -- 把多个文件打包成一个压缩包 -- 这个压缩包和Winzip的压缩格式是一样的.
区别在于jar压缩的文件默认多一个META-INF的文件夹,该文件夹下包含一个Manifest.mf(清单文件)的文件
通常来说jar命令得到的压缩包有三种(压缩格式完全一样,只是后缀名不同而已):
A、*.jar - 它里面包含N个class文件。
B、*.war (web) - 它是一个web应用打包生成的。
C、*.ear(Enterprise) -它是一个企业应用打包生成的包
二、jar命令用法:
-c 创建新的归档文件
-t 列出归档目录和文件
-x 解压缩已归档的指定(或所有)文件
-u 更新现有的归档文件
-v 在标准输出中生成详细输出 / 提供更详细输出信息
-f 指定归档文件名 / 为压缩包指定名字
-m 包含指定清单文件中的清单信息
-e 为捆绑到可执行 jar 文件的独立应用程序
指定应用程序入口点
-0 仅存储,不压缩,只是打包;不使用任何 ZIP 压缩
-M 不创建条目的清单文件 META-INF/MANIFEST.MF
-i 为指定的 jar 文件生成索引信息
-C 更改为指定的目录并包含其中的文件
1、创建压缩包
jar -cf mytest.jar *.class
//将当前目录下的*.class文件压缩到上一级目录的mytest.jar文件内
jar -cvf mytest.jar *.class
2、创建压缩包,不生成清单文件MANIFEST.MF 大写M
jar -cMf mytest.jar *.class
3、查看压缩包
jar -tf mytest.jar
jar -tvf mytest.jar
4、解压
jar -xf mytest.jar //解压到当前目录
jar -xvf mytest.jar 解压可看到详细的过程
5、更新压缩包
jar -uvf mytest.jar 要加入的指定class文件
为什么要制作jar包?
一个真实项目中,涉及到的class文件是非常多的。非常多的class文件存在以下问题:
a.系统管理不方便;
b.JVM要分开依次加载不同的*.class文件,效率很低,于是就可以把多个class文件打包成一个jar包,这样好处是:
①.多个class文件都统一成一个jar包方便管理;
②.JVM可以直接加载jar包就可以一次性加载N个类,效率更高
打包成可执行性jar包
通过 -e 选项 告诉系统哪个类是该jar包的主类
jar -cvfe mytest.jar UserTest *.class(指定的主类)
如果机器上安装了独立的虚拟机,只要双击“可执行性”的jar包即可执行
java -jar jar包名 -指定要执行的jar包
如果不需要生成清单文件MANIFEST.MF,可以直接使用WinRAR或Winzip来压缩(必须压缩成zip格式),解压也可如此