java jar命令 常见用法:
一、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、解压
// 解压到当前目录
jar -xf mytest.jar
// 解压可看到详细的过程
jar -xvf mytest.jar
3、更新压缩包
要加入的指定class文件
jar -uvf mytest.jar
4、为什么要制作jar包?
一个真实项目中,涉及到的class文件是非常多的。非常多的class文件存在以下问题:
a.系统管理不方便;
b.JVM要分开依次加载不同的*.class文件,效率很低,于是就可以把多个class文件打包成一个jar包,这样好处是:
①.多个class文件都统一成一个jar包方便管理;
②.JVM可以直接加载jar包就可以一次性加载N个类,效率更高
三、java -jar 命令
java -jar myClass.jar
执行该命令时,会用到目录META-INF\MANIFEST.MF文件,
在该文件中,有一个叫Main-Class的参数,它说明了java -jar命令执行的类
java -jar *.jar param1 param2
运行jar包,会自动到 jar 包中查询mainfest中定义的启动类并运行
param1,param2 为main方法的参数可不填
四、java -cp 命令
java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,
注意:
window上分号“;”
linux上分号“:”
例如:
java -cp lib/*;etc/ com.Start param1 param2
将lib下的所有jar文件以及etc下的所有配置文件添加到 classpath 中
并在classpath 中寻找 com.Start类(main方法类)并运行
param1,param2 为main方法的参数可不填
注意:jar 文件引入classpath,通配符不能写成 .jar, 只能使用 * 或 123
注意:配置文件引入classpath,只能写到目录 /, 不能添加 **