一、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格式),解压也可如此

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

  1. jar命令的用法详解

    本文详细讲述了JAR命令的用法,对于大家学习和总结jar命令的使用有一定的帮助作用.具体如下: JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包.当然也是有区别的,JAR包中 ...

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

    在使用java -jar 命令启动一个jar包的时候,提示版本不支持: [root@hadoop01 eureka-server-master]# java -jar xuebusi-eureka-s ...

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

    jar包本质上是将所有class文件.资源文件压缩打成一个包(也可以选择不压缩),可选择在jar包中生成META-INF/MANIFEST.MF文件,MANIFEST.MF是清单文件,里面可以记录主类 ...

  4. Java——jar命令

    把*.class压缩成一个文件,这样的文件就称为jar文件. 如果想要生成jar文件,直接使用JDK中bin目录里的jar.exe就可以将所有的类文件进行压缩. 当用户得到一个jar文件后,即可通过设 ...

  5. java -jar 命令

    java -jar spring.jar 这个命令当你 controller c 之后,程序就自动结束了 java jar spring.jar & &是指在后台运行,但当用户推出(挂 ...

  6. centos7下将java -jar命令运行一个项目做成systemd服务

    有些时候运行一个java项目在linux下通过一条简单的java命令即可,如: #nohup java -jar jenkins.war & ###这里为后台运行jenkins 在此背景下,j ...

  7. java -jar命令

    1.用eclipse的export导出jar包后,打开jar中的MANIFEST.MS文件,修改如下: 2.然后在命令行中输入命令:java -jar aa.jar即可.

  8. Linux后台运行java的jar包后台运行java -jar 命令

    为什么java -jar 的命令终端的窗口关闭就停止运行了??tomcat中war的就不会? 关闭终端的窗口相当于ctrl+c的命令,关闭了窗口就相当于停止了java -jar这个进程,即ctrl+c ...

  9. Java反射的常见用法

    反射的常见用法有三类,第一类是“查看”,比如输入某个类的属性方法等信息,第二类是“装载“,比如装载指定的类到内存里,第三类是“调用”,比如通过传入参数,调用指定的方法. 1 查看属性的修饰符.类型和名 ...

随机推荐

  1. NPOI基本操作XLS

    using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using Sys ...

  2. 创建Oracle10g ASM数据库

    概述      在真正的海量数据库环境中,DBA可能会花费很多的时间来作磁盘管理,比如一个表空间将占满整个磁盘,DBA就需要再添加一块磁盘到操作系统中,然后再在新的磁盘上创建新的数据文件,如果是单个磁 ...

  3. Android中shell命令语句

    最近学习了Android中碰到了shell命令,故收集终结了一下 Ccat zdd 浏览文件zdd的内容cat zdd1 zdd2 浏览多个文件的内容cat -n zdd浏览文件zdd的内容并显示行号 ...

  4. 从数据库导出数为生成excel表

    mysql -umaster -hxx.xx.xx.xx -p -e "set names utf8; use xxxdb;select * from t_order where t_ord ...

  5. ReentrantLock和synchronized两种锁定机制

    ReentrantLock和synchronized两种锁定机制 >>应用synchronized同步锁 把代码块声明为 synchronized,使得该代码具有 原子性(atomicit ...

  6. 【JAVA集合框架之Set】

    一.Set概述. Set集合的特点是元素不允许重复,而且是无序的(添加和取出的顺序不一致). Set接口中的方法和Collection接口中的方法几乎相同,略. Set接口下常用的两个类:HashSe ...

  7. java BigInteger使用

    虽然说我不怎么会用java写一些东西,但是java里的biginteger我还是很喜欢的.这个类解决了,我们在其他很多语言中遇到的问题:大数.比如在C++中我们要计算一个大小超过long long的数 ...

  8. HTML5——摒弃插件和前端框架的异步文件上传

    之前我从来没有体会到HTML5的便利,直到这次需要一个异步上传的功能功能.一开始我以为文件的一些声明必须为HTML5才管用,后来才知道添加了很多以前没有的标签,并可以直接播放视频,音频等.可以不再使用 ...

  9. VS2010下配置OpenMesh

    从www.openmesh.org下载最新版的安装包或者源代码,注意下载与自己系统匹配的版本,我下的是VS2010预编译版的,下载源码自己编译是一样的.安装好Visual Studio. 安装Open ...

  10. MongoDB学习(1)—在Windows系统中安装MongoDB

    概述 本文主要介绍在Windows系统安装MongoDB的方法. MongoDB官方网址:http://www.mongodb.org/,最新版本为2.6.7. 注意: 从2.2版本开始,MongoD ...