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

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

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

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

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

  3. 压缩(此处遇到问题较多):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文件的编写存在较多细节,罗列如下:

    1. 不能有空行和空格的地方

      第一行不可以是空行( 第一行的行前不可以有空行),行与行之间不能有空行,第行的行尾不可以有空格

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

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

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

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

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值