Linux命令之jar命令使用示例

 更新时间:2023年06月27日 10:53:04   作者:恒悦sunsite  
这篇文章主要介绍了Linux命令之jar命令,War包和Jar包有不同的用途和适用场景,开发人员需要根据实际情况选择适合的归档文件类型,需要的朋友可以参考下

一、jar命令简介

jar命令是Java开发中常用的命令行工具,用于创建、查看和操作Java归档文件(也称为JAR文件)。一般情况下我们很少直接使用此命令创建jar包,都是内嵌在开发工具中。主要使用场景如下:

  • 1、开发环境jar包或者war包部署到测试环境;
  • 2、某演示系统war程序复制部署到客户环境,给客户提供试用;
  • 3、通用前置机jar包程序部署到不同客户环境,只需要修改客户购买的账户及数据库连接信息即可。

这些情况下开发人员将系统打包成jar包或者war包,我们只需要部署前根据实际环境修改配置文件相关参数,然后启动程序即可完成系统部署。这个时候我们就可以使用jar命令解压软件包,如果是war包部署的WEB程序,实际上解压完成后修改参数启动即可;如果是jar包程序则需要重新打包后运行。

二、jar命令使用示例

1、解压war包

解压后我们就可以进入配置文件目录编辑或者替换配置文件。

(base) [wuhs@s142 webapps]$ jar xvf test.war…(base) [wuhs@s142 webapps]$ lltotal 52244drwxrwxr-x. 7 wuhs wuhs 84 May 6 13:39 htmldrwxrwxr-x. 3 wuhs wuhs 38 May 6 16:21 META-INF-rw-r–r–. 1 wuhs wuhs 53497846 May 6 14:08 test.wardrwxrwxr-x. 4 wuhs wuhs 47 May 6 13:39 WEB-INF(base) [wuhs@s142 webapps]$ vim WEB-INF/classes/config.properties

2、解压jar包

解压jar包和war包方式是一样的。

(base) [wuhs@s142 test]$ jar xvf test.jar…(base) [wuhs@s142 test]$ lltotal 132drwxrwxr-x. 3 wuhs wuhs 23 Jul 30 2020 comdrwxrwxr-x. 3 wuhs wuhs 38 Aug 3 2020 META-INF-rw-r–r–. 1 wuhs wuhs 134472 May 6 16:23 test.jar

3、创建jar包

(base) [wuhs@s142 test]$ tar -cvf test1.jar com META-INF/…(base) [wuhs@s142 test]$ lltotal 264drwxrwxr-x. 3 wuhs wuhs 23 Jul 30 2020 comdrwxrwxr-x. 3 wuhs wuhs 38 May 6 16:28 META-INF-rw-rw-r–. 1 wuhs wuhs 135165 May 6 16:28 test1.jar-rw-r–r–. 1 wuhs wuhs 134472 May 6 16:23 test.jar

4、查看jar包文件列表

(base) [wuhs@s142 test]$ jar -tvf abcd.jar

在这里插入图片描述

#查看jar包内容,如果文件较多我们可以结合grep命令过滤(base) [wuhs@s142 webapps]$ jar tvf test.war |grep config.properties3802 Sat May 06 09:31:20 CST 2023 WEB-INF/classes/config.properties

5、更新文件到jar包

使用u参数可以将文件更新到jar包中,文件增加到了jar包根目录下。

(base) [wuhs@s142 test]$ jar -uvf test.jar config_uat.propertiesadding: config_uat.properties(in = 3802) (out= 1073)(deflated 71%)

6、创建带MANIFEST.MF文件的jar包

使用m参数创建带MANIFEST.MF文件的jar包,要求MANIFEST.MF该文件存在,生成jar包的时候会自动创建META-INF目录,并将该MANIFEST.MF文件放置到该目录下。

(base) [wuhs@s142 test]$ jar -cvfm abcd.jar MANIFEST.MF com…(base) [wuhs@s142 test]$ jar -xvf abcd.jarcreated: META-INF/inflated: META-INF/MANIFEST.MF…

7、不创建MANIFEST.MF文件的jar包

默认是自动创建MANIFEST.MF文件,如果不需要创建则使用-M参数,如果使用-m参数指定MANIFEST.MF文件则需要提前创建好该文件,通过MANIFEST.MF文件可以对jar包进行一些设置。

(base) [wuhs@s142 test]$ jar -cvfM abcd.jar com

8、切换到指定目录执行jar命令

注意-C dir后面的点哦。

(base) [wuhs@s142 test]$ jar -cvf abcd.jar -C abc/ .

三、jar命令使用语法及参数说明

1、使用语法

#jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files …#jar 参数 jar包名称 文件或目录

2、参数说明

参数参数说明
-c创建新的存档
-t存档目录列表
-x从存档中提取命名(或所有)文件
-u更新现有存档
-v在标准输出上生成详细输出
-f指定存档文件名
-m包括指定清单文件中的清单信息
-n在创建新存档后执行Pack200规范化
-e为绑定到可执行jar文件中的独立应用程序指定应用程序入口点
-0不使用ZIP压缩
-P保留文件名中的前导’/'(绝对路径)和“…”(父目录)组件
-M不为条目创建清单文件
-i为指定的jar文件生成索引信息
-C更改到指定的目录并包含以下文件

四、War包和Jar包区别

War包和Jar包都是Java开发中的归档文件,但它们有一些区别:

  • 用途不同:War包主要用于Web应用程序的部署,而Jar包则用于Java应用程序的打包和部署。
  • 包含内容不同:War包通常包含Web应用程序的所有文件,包括JSP、HTML、CSS、JavaScript、Servlet、JavaBean等,而Jar包则包含Java类、资源文件和库文件等。
  • 目录结构不同:War包通常包含WEB-INF目录和META-INF目录,其中WEB-INF目录包含web.xml、classes目录和lib目录,META-INF目录包含MANIFEST.MF文件;而Jar包则通常只包含META-INF目录和Java类文件。
  • 部署方式不同:War包一般需要部署到Web服务器中,例如Tomcat、WebLogic等,而Jar包可以作为Java应用程序的独立运行文件,也可以作为库文件被其他Java应用程序调用。

总的来说,War包和Jar包有不同的用途和适用场景,开发人员需要根据实际情况选择适合的归档文件类型。

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

相关文章

  • linux打包某个可执行文件及其依赖文件

    linux打包某个可执行文件及其依赖文件

    这篇文章主要为大家详细介绍了如何通过linux打包某个可执行文件及其依赖文件,文中的示例代码讲解详细,感兴趣的小伙伴可以跟了解一下
    2024-12-12
  • Linux 中的 su 和 sudo 命令这两个有什么不一样(最新整理)

    Linux 中的 su 和 sudo 命令这两个有什么不一样(最新整理

    在Linux中,理论上来说,我们可以创建无数个用户,但是这些用户是被划分到不同的群组里面的,有一个用户,名叫 root,是一个很特殊的用户,它是超级用户,拥有最高权限,下面给大家介绍Linux中的su和sudo命令,感兴趣的朋友一起看看吧
    2025-06-06
  • Shell中调用、引用、包含另一个脚本文件的三种方法

    Shell中调用、引用、包含另一个脚本文件的三种方法

    这篇文章主要介绍了Shell中调用、引用、包含另一个脚本文件的三种方法,需要的朋友可以参考下
    2014-04-04
  • 解决linux下openoffice word文件转PDF中文乱码的问题

    解决linux下openoffice word文件转PDF中文乱码的问题

    下面小编就为大家带来一篇解决linux下openoffice word文件转PDF中文乱码的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • 设置Shell脚本开机自启的方法和实例

    设置Shell脚本开机自启的方法和实例

    这篇文章主要介绍了设置Shell脚本开机自启的方法和实例,文中通过代码示例给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-02-02
  • Shell如何遍历包含空格的文本详解

    Shell如何遍历包含空格的文本详解

    这篇文章主要给大家介绍了关于Shell如何遍历包含空格的文本的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 进程状态ps -ef中的e、f含义讲解

    进程状态ps -ef中的e、f含义讲解

    这篇文章主要介绍了进程状态ps -ef中的e、f含义讲解,通过本文学习我们知道-e和-A都显示有关其他用户进程的信息,包括那些没有控制终端的进程,-f显示用户id,进程id,父进程id,最近CPU使用情况,进程开始时间等等,具体含义及更多命令跟随小编通过本文学习
    2022-11-11
  • Linux系统中的Postlog 命令详解

    Linux系统中的Postlog 命令详解

    本文给大家介绍Linux系统中的Postlog 命令,文章还列举了Postlog命令的典型使用场景和关键注意事项,并提供了一个示例脚本模板,感兴趣的朋友跟随小编一起看看吧
    2025-11-11
  • shell编程之实现windows回收站功能分享

    shell编程之实现windows回收站功能分享

    这篇文章主要介绍了使用trash命令替代linux rm命令实现windows回收站的功能,需要的朋友可以参考下
    2014-03-03
  • Linux中 sed 和 awk的用法详解

    Linux中 sed 和 awk的用法详解

    sed是一个很好的文件处理工具,本身是一个管道命令,awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大 ,本文重点给大家介绍Linux中 sed 和 awk的用法,一起看看吧
    2017-07-07

最新评论