修改jar包文件,重新打包jar

一、网上搜到的下列替换方案都不行:

1、直接用WinRAR拖拽替换jar包内文件

失败,报错:压缩文件已损坏。

我以前替换成功过,但是启动的时候报错。这种方式可能会伤害到jar包的一些标识。

只适合zip格式的jar文件。可以先用这种方法试试,毕竟最简单。

2、解压jar包,然后使用jar命令(比如jar -uvf)重新打包

失败,能打包,但是以可执行文件(./xxx.jar start)运行时提示:jar: cannot execute binary file

最终我用下面方案成功了:

1、将jar包文件解压,并且把所有依赖的lib下的jar包统统解压,合并在一起( 包括class、配置文件和其他资源文件);

2、​然后全部导入到maven项目的main/resource目录下,删除/META-INF/MANIFEST.MF;

3、然后配置maven pom.xml,如下所示:

<?xml version="1.0"  encoding="UTF-8"?>

<project xmlns="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.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <parent>

    <groupId>com.ctrip.framework.apollo</groupId>

    <artifactId>apollo</artifactId>

    <version>0.10.3-SNAPSHOT</version>

    <relativePath>../pom.xml</relativePath>

  </parent>

  <modelVersion>4.0.0</modelVersion>

  <artifactId>manual-package</artifactId>

  <build>

    <plugins>

      <plugin>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-maven-plugin</artifactId>

        <configuration>

          <mainClass>com.ctrip.framework.apollo.portal.PortalApplication</mainClass>

          <executable>true</executable>

        </configuration>

      </plugin>

    </plugins>

  </build>

</project>

    其原理就是将 jar包内的文件当做resource,重新打包到jar中即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值