Linux中jar包的解压、修改与重新打包问题详解

 更新时间:2026年05月02日 14:36:02   作者:FelixWang0515  
文章介绍了在远程Linux服务器上执行jar文件操作时遇到的问题的解决方法,主要包括jar包解压缩和文件压缩,在解压jar包时,需要先在本地解压缩后拷贝到远程服务器,再进行压缩;在压缩jar包时需要注意manifest.mf文件的编写细节,如空行、空格等

1、解压

实验中使用远程操作服务器进行jar包的解压,使用的指令为:jar -xvf **.jar

出现问题 :在执行完指令之后并没有任何反应,终端没有报错,而是直接换行(纠结很久)。

解决办法 :直接拷贝到远程服务器的压缩包是无法直接通过终端的指令进行解压的,具体原因未知(待探讨)。最直 接的解决方式是在本地进行解压缩,将解压缩后的文件拷贝到远程服务器,再进行压缩,此时获得的压缩包便可以进行直接操作。为远程Linux服务器通过终端安装软件时也会出现这种问题,直接将本地的压缩包拷贝过去,无法进行解压、安装等操作。

2、文件操作

在文件夹中找到需要修改或替换的文件,直接进行相关操作。

压缩(此处遇到问题较多):jar指令的相关参数如下

Usage: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
Options:
    -c  create new archive
    -t  list table of contents for archive
    -x  extract named (or all) files from archive
    -u  update existing archive
    -v  generate verbose output on standard output
    -f  specify archive file name
    -m  include manifest information from specified manifest file
    -n  perform Pack200 normalization after creating a new archive
    -e  specify application entry point for stand-alone application
        bundled into an executable jar file
    -0  store only; use no ZIP compression
    -P  preserve leading '/' (absolute path) and ".." (parent directory) components from file names
    -M  do not create a manifest file for the entries
    -i  generate index information for the specified jar files
    -C  change to the specified directory and include the following file
If any file is a directory then it is processed recursively.
The manifest file name, the archive file name and the entry point name are
specified in the same order as the 'm', 'f' and 'e' flags.

Example 1: to archive two class files into an archive called classes.jar:
       jar cvf classes.jar Foo.class Bar.class
Example 2: use an existing manifest file 'mymanifest' and archive all the
           files in the foo/ directory into 'classes.jar':
       jar cvfm classes.jar mymanifest -C foo/ .

实验中涉及的jar包是一个完整的springboot项目,所以需要最后打包的jar包是一个可执行文件,因此需要指定manifest.mf文件。

注意事项 

manifest.mf文件的编写存在较多细节,罗列如下:

最终的打包指令为

  • jar cvfM0 **.jar ./,其中./表示当前目录下所有的文件进行打包,切记,指令中M后边必须添加0
  • -0 仅存储; 不使用任何 ZIP 压缩,这样可以保证使用解压之前的manifest.mf文件。

若出现加载不到主清单程序

将压缩包进行解压缩,查看其中的manifest.mf文件是否已经发生改变,若发生改变,则说明压缩操作出现问题。

1、不能有空行和空格的地方。第一行不可以是空行( 第一行的行前不可以有空行),行与行之间不能有空行,第行的行尾不可以有空格

2、一定要有空行的地方,最后一行得是空行,在输入完成是加空行。

3、一定有空格的地方,key: value 在分号后面一定要写写一个空格

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • centos7搭建hadoop2.10高可用(HA)

    centos7搭建hadoop2.10高可用(HA)

    这篇文章主要介绍了centos7搭建hadoop2.10高可用(HA),本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 手把手教你配置一台Linux虚拟机

    手把手教你配置一台Linux虚拟机

    这篇文章主要手把手教你配置一台Linux虚拟机,具有一定的参考价值和实用价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • 详解在linxu下Svn一键安装shell脚本

    详解在linxu下Svn一键安装shell脚本

    这篇文章主要介绍了在linxu下Svn一键安装shell脚本的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)运行环境步骤

    CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)运行环境步骤

    这篇文章主要介绍了CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)运行环境步骤,需要的朋友可以参考下
    2014-07-07
  • 详解Linux中如何安全地抹去磁盘数据

    详解Linux中如何安全地抹去磁盘数据

    离过职的小伙伴都知道,离职的时候需要上交公司电脑,但是电脑里面有许多我们的个人信息,所以我们就需要先把这些信息都删除,确保无法恢复之后才上交,下面我们来看一下在 Linux 中如何安全地抹去磁盘数据吧
    2023-10-10
  • 分享服务器被入侵的处理过程

    分享服务器被入侵的处理过程

    这篇文章主要介绍了一次服务器被入侵的处理过程分享,下文中的给文件和目录加锁,是指给文件和目录增加了一些属性,只读等,需要的朋友可以参考下
    2022-09-09
  • Linux LVM卷组移除PV的操作过程

    Linux LVM卷组移除PV的操作过程

    这篇文章主要介绍了Linux LVM卷组移除PV的操作过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • Linux性能监控的工具集和分析命令工具详解

    Linux性能监控的工具集和分析命令工具详解

    本文主要介绍了磁盘IO性能指标,包括IOPS、吞吐量/带宽、访问时延、使用率和饱和度等,并详细介绍了iostat和iotop这两个常用的性能监控工具的使用方法和参数
    2025-12-12
  • Linux 服务器如何用 SSH 拉取多个 Git 工程

    Linux 服务器如何用 SSH 拉取多个 Git 工程

    这篇文章主要介绍了Linux 服务器如何用 SSH 拉取多个 Git 工程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-05-05
  • Ubuntu服务器常用命令汇总

    Ubuntu服务器常用命令汇总

    ubunt常用服务器命令操作,闲来无事,分享ubuntu服务器版常用命令,绝对有用。希望大家好好享受,但是不要拿自己的服务器做测试,建议您在windows下建立虚拟机再操作
    2020-10-10

最新评论