Java如何使用jar命令打包

 更新时间:2023年10月20日 10:11:17   作者:have_to_be  
把多个文件打包成一个压缩包——这个压缩包和WinZip的压缩格式是一样的,区别在于jar压缩的文件默认多一个META-INF的文件夹,该文件夹里包含一个MANIFEST.MF的文件,本文给大家介绍Java如何使用jar命令打包,感兴趣的朋友跟随小编一起看看吧

jar命令

把多个文件打包成一个压缩包——这个压缩包和WinZip的压缩格式是一样的。

区别在于jar压缩的文件默认多一个META-INF的文件夹,该文件夹里包含一个MANIFEST.MF的文件(清单)。

通常来说,得到的压缩包有3种(压缩格式完全一样,只是后缀名不同而已):

1、*.jar

它里面包含N个class文件。

2、war(Web)

它是一个Web应用打包生成的包。

3、ear(Enterprise)

它是一个企业应用打包生产的包。

jar命令的用法:

-c
-t
-x
-v
-f
-m
-e
-0
-M
-i
-C

1、创建压缩包

jar -cf jar包名字.jar *.class

生成更加详细的输出

jar -cvf jar包名字.jar *.class

2、创建压缩包,不生成清单文件

jar -cvMf jar包名字.jar *.class

3、查看压缩包

jar -tf jar包名字.jar

查看更加详细的信息

jar -tvf jar包名字.jar

4、解压压缩包

jar -xf jar包名字.jar

解压,看到详细的过程

jar -xvf jar包名字.jar

5、更新压缩包

jar -uvf jar包名字.jar *.class

为什么要制作jar包?

一个真实的项目中,涉及到的class文件是非常多的。存在如下问题:

1、非常多的class文件,系统管理不方便。

2、JVM需要分开、依次加载不同的*.class文件,效率很低。

于是就可以把多个class文件,打包成一个jar包,好处是:

1、多个class被统一成了一个jar包,方便管理。

2、JVM可以直接加载jar包,就可以一次就加载N个类,效率更高。

可以打包出“可执行性”的jar包。

通过-e选项,告诉系统哪个类是该jar的主类。

jar -cvfe jar包名字.jar 主类名字 *.class

如果机器安装了独立的虚拟机,只要双击“可执行性”的jar包即可运行。

java -jar jar包名字

如果不需要生成清单文件(MANIFEST.MF),可以直接使用WinRAR或WinZip压缩,也可以用WinRAR或WinZip来解压。

到此这篇关于Java如何使用jar命令打包的文章就介绍到这了,更多相关java jar命令打包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mybatis plus逻辑删除注解@TableLogic的使用

    Mybatis plus逻辑删除注解@TableLogic的使用

    本文主要介绍了Mybatis plus逻辑删除注解@TableLogic,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Java Object类和包装类深入解读

    Java Object类和包装类深入解读

    Object类是一个特殊的类,是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类,所谓包装类,就是能够直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大量使用这些包装类
    2022-02-02
  • Java中Arrays类与Math类详解

    Java中Arrays类与Math类详解

    这篇文章主要介绍了Java中Arrays类与Math类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 使用HttpSessionListener监听器实战

    使用HttpSessionListener监听器实战

    这篇文章主要介绍了使用HttpSessionListener监听器实战,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java的ConcurrentHashMap中不能存储null的原因解析

    Java的ConcurrentHashMap中不能存储null的原因解析

    众所周知,在Java中Map可以存储null,而ConcurrentHashMap不能存储null值,那么为什么呢?今天通过源码分析给大家详细解读,感兴趣的朋友一起看看吧
    2022-07-07
  • Java 内存分配深入理解

    Java 内存分配深入理解

    这篇文章主要介绍了Java 内存分配深入理解的相关资料,需要的朋友可以参考下
    2017-03-03
  • 详解SpringCloud微服务之Rest

    详解SpringCloud微服务之Rest

    今天带大家学习SpringCloud微服务之Rest的有关知识,文中有非常详细的介绍及代码示例,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • Java线程间通信不同步问题原理与模拟实例

    Java线程间通信不同步问题原理与模拟实例

    这篇文章主要介绍了Java线程间通信不同步问题,结合实例形式分析了java线程间通信不同步问题的原理并模拟实现了线程间通信不同步情况下的异常输出,需要的朋友可以参考下
    2019-10-10
  • java环境变量的配置方法图文详解【win10环境为例】

    java环境变量的配置方法图文详解【win10环境为例】

    这篇文章主要介绍了java环境变量的配置方法,结合图文形式详细分析了win10环境下java环境变量的配置方法与相关操作注意事项,需要的朋友可以参考下
    2020-04-04
  • 用java实现杨辉三角的示例代码

    用java实现杨辉三角的示例代码

    本篇文章主要介绍了用java实现杨辉三角的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01

最新评论