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、创建压缩包,不生成清单文件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格式),解压也可如此

时间: 2024-10-27 04:56:29

Java jar命令 常见用法的相关文章

jar命令的用法详解

本文详细讲述了JAR命令的用法,对于大家学习和总结jar命令的使用有一定的帮助作用.具体如下: JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包.当然也是有区别的,JAR包中有一个META-INF\MANIFEST.MF文件,当你找成JAR包时,它会自动生成. JAR包是由JDK安装目录\bin\jar.exe命令生成的,当我们安装好JDK,设置好path路径,就可以正常使用jar.exe命令,它会用lib\tool.jar工具包中的类.这些细节就不用管它了. 让我们看

jar命令的用法详解(转载)

本文详细讲述了JAR命令的用法,对于大家学习和总结jar命令的使用有一定的帮助作用.具体如下: JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包.当然也是有区别的,JAR包中有一个META-INF\MANIFEST.MF文件,当你找成JAR包时,它会自动生成. JAR包是由JDK安装目录\bin\jar.exe命令生成的,当我们安装好JDK,设置好path路径,就可以正常使用jar.exe命令,它会用lib\tool.jar工具包中的类.这些细节就不用管它了. 让我们看

Linux 磁盘空间大小统计du命令常见用法

在 Linux下,可以对某个文件或文件夹所占空间大小进行统计,这里将一些常用用法汇总如下: 1.对指定文件或文件夹进行统计,缺省单位为kbyte(k或千字节),下例对文件夹testa进行统计: [[email protected] ~]$ du -s testa 1589308    testa 2.对文件夹统计的正确做法,如果想知道某个文件夹所占空间的大小,用什么命令?直接用du可以吗? 可以是可以,但是,它会将该文件夹底下所有目录都统计一遍,显然,这不是我们想要的.正确的做法是使用 -s操作

使用 "java -jar"命令启动jar包时报不支持的jdk版本异常

在使用java -jar 命令启动一个jar包的时候,提示版本不支持: 1 [[email protected] eureka-server-master]# java -jar xuebusi-eureka-server-master.jar 2 Exception in thread "main" java.lang.UnsupportedClassVersionError: com/xuebusi/EurekaApplication : Unsupported major.min

JAVA jar命令(一)-jar打包class文件

jar包本质上是将所有class文件.资源文件压缩打成一个包(也可以选择不压缩),可选择在jar包中生成META-INF/MANIFEST.MF文件,MANIFEST.MF是清单文件,里面可以记录主类.classpath等信息,供虚拟机使用.接下来的一段时间里,我们将以以下路径学习jar命令和清单文件的相关知识 jar打包class文件    带包class文件jar打包    清单文件的使用 在这篇文章里我们将使用简单的java程序来熟悉jar命令的使用,因为是出于熟练使用jar的目的,下面的

Java反射的常见用法

反射的常见用法有三类,第一类是“查看”,比如输入某个类的属性方法等信息,第二类是“装载“,比如装载指定的类到内存里,第三类是“调用”,比如通过传入参数,调用指定的方法. 1 查看属性的修饰符.类型和名字 通过反射机制,我们能从.class文件里看到指定类的属性,比如属性的修饰符,属性和类型和属性的变量名.通过下面的ReflectionReadVar.java,我们看演示下具体的做法. 1 import java.lang.reflect.Field; 2 import java.lang.ref

java -jar命令 指定端口和日志标准输出

在启动weblogic的时候我们经常看到如下的命令: nohup java -jar /opt/apps/$APP --server.port=$SERVER_PORT  >/var/log/$APP_NAME/deploy.log 2>&1 & 其中 0.1.2分别代表如下含义: 0 – stdin (standard input) 1 – stdout (standard output) 2 – stderr (standard error) nohup+最后面的&

java -cp 命令 java jar 命令和 hadoop jar 命令

-cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号";" java -cp .;myClass.jar packname.mainclassname   classpath中的jar文件能使用通配符,如果是多个jar文件,要一个一个地罗列出来,从某种意义上说jar文件也就是路径. 要指定各个JAR文件具体的存放路径,相同路径有多个可使用通配符 java -cp .;c:\classes\myClas

curl命令常见用法

原博主:http://www.cnblogs.com/duhuo/p/5695256.html    都市烟火  ,敬请关注 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具. 语法:# curl [option] [url] 常见参数: -A/--user-agent <string> 设置用户代理发送给服务器 -b/--cookie <name=st