java -jar 和 java -cp

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,只能写到目录 /, 不能添加 **

上一篇:php .htaccess 伪静态


下一篇:织梦实现全站改版伪静态转移权重301