首页 > 其他分享 >记一次Unable to open nested entry ‘BOOT-INFlib.jar‘. It has been compressed

记一次Unable to open nested entry ‘BOOT-INFlib.jar‘. It has been compressed

时间:2023-06-22 20:23:23浏览次数:42  
标签:替换 lib service BOOT 程序包 been jar bis

感谢原文:https://blog.csdn.net/weixin_38084097/article/details/126479173

问题背景

前段时间由于工作失误,误将工程项目中某一个依赖包没有添加@loadbalanced注解就直接打包依赖到的主工程中,并发送项目现场测试。出来混的,迟早都要还的。这不,今天就接到项目现场测试部同事投诉,说是程序包无法启动。报错如下:

在这里插入图片描述

排查原因

当时第一反应是bis-service这个包咋这么熟悉嗫,灵光一闪,WC,这不是我单独打包替到主工程包里面的那个依赖包么。那这个问题的排查思路也就出来了:

  • 将bis-service替换到程序包的lib时出错

  • bis-service包本身有错

    如果bis-service包本身含错,报错信息应该不是这样,所以问题产生的原因可以锁定在使用bis-service替换到程序包lib过程中。

问题产生原因分析

当时将bis-service替换到lib中时,主程序是已经打包成了jar,所以当时是直接以解压软件打开后,将bis-service.jar包替换致lib下,重新压缩。是否是压缩软件重新压缩过程中,将bis-service.jar也压缩了,所以导致springboot不能读取该包?

解决方案

既然不能直接使用解压软件,那就直接使用java自带命令解压后,然后将对应jar包替换到lib中,在使用java命令重新压缩不就行了么(我可真是个小天才)。

  1. 使用如下命令,将主程序包解压, 其中xxx是需要解压的jar包名

    jar -xvf xxx.jar
    1
    
  2. 解压后,将需要替换的jar包替换到/BOOT-INF/lib/ 下,再使用如下命令重新压缩

    jar -cfM0 ./
    1
    

结果

将替换好的主程序包java -jar,嘿,好了!

结果

将替换好的主程序包java -jar,嘿,好了!

在这里插入图片描述

标签:替换,lib,service,BOOT,程序包,been,jar,bis
From: https://www.cnblogs.com/javaxubo/p/17498254.html

相关文章

  • Spring boot 手动开启事务 手动提交 手动回滚
    直接上代码@ServicepublicclassXXXService{//这两个必须要注入@ResourceDataSourceTransactionManagerdataSourceTransactionManager;@ResourceTransactionDefinitiontransactionDefinition;publicvoidmethod1(){//开启事务......
  • linux中用crontab定时任务启动jar无效的问题
    原文链接:https://blog.csdn.net/for_the_time_begin/article/details/113940508问题:使用linux系统中的定时任务执行jar包,但是经过测试发现一只不能正常执行,发现定时任务crontab是正常运行的,因为再写一个测试用的定时任务指定时间在指定的目录位置下生成一个文件,或者向文件中追......
  • SpringBoot - jackson 序列化配置,支持jdk8 时间类型和解决科学计数法
    jdk8时间序列化配置#Copy@ConfigurationpublicclassJacksonConfig{@BeanpublicObjectMapperserializingObjectMapper(){JavaTimeModulejavaTimeModule=newJavaTimeModule();/**序列化配置,针对java8时间**/javaTimeModule.add......
  • eclipse怎么通过Maven Build生成运行jar包
    1、首先打开“eclipse”,并右击选中一个你要生成jar包的项目2、然后点击展开栏中的“MavenBuild...”3、其次按如图方式输入package,勾选SkipTests,点击下方的Apply,最后点击Run即可4、最后生成的jar文件,在根目录的target下面 转自:https://jingyan.baidu.c......
  • springboot 默认配置的线程池
     线程池的大小通常都是我们比较关注的,SpringBoot会为系统做默认配置。如果不清楚SpringBoot默认配置的线程池的大小的话,容易线上踩坑。最近碰到一个生产问题,线上部署6台机器,定时任务A,B都在17:00执行,执行时会各自先获取分布式锁。(服务器时间是一致的)理论上是可以做到同......
  • springboot集成easyexcel实现导入导出
    1、添加依赖<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.5</version></dependency>2、controller/***基于Liste......
  • springboot简单依赖
    <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/......
  • springboot启动流程 (3) 自动装配
    在SpringBoot中,EnableAutoConfiguration注解用于开启自动装配功能。本文将详细分析该注解的工作流程。EnableAutoConfiguration注解启用SpringBoot自动装配功能,尝试猜测和配置可能需要的组件Bean。自动装配类通常是根据类路径和定义的Bean来应用的。例如,如果类路径上有tomcat-......
  • Jenkins部署前后端不分离springboot项目
    背景写这篇博客的时候我还是大学生,学校期末课程设计时要求使用Jenkins部署项目,所以使用windows,但是企业中都是使用linux,往往还会搭建一个gitlab。下面我介绍的是在window环境下使用jenkins部署项目,这阵子搞这个期末作业时感觉收获还是挺大的,专门记录下。持续集成(CI)持续集成......
  • jar包冲突,修改jar包的路径
    <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.......