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

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中即可。

修改jar包文件,重新打包jar相关推荐

  1. java jar manifest文件,java打包jar,以及manifest文件使用说明

    java打包jar,以及manifest文件使用说明 http://20921556.javaeye.com/blog/263974 关键字: java jar Java的一种文档格式,JAR文件非常 ...

  2. python编写脚本替换 jar包文件_shell-替换jar包中配置文件脚本

    脚本运行平台:centos7.3 1.编写脚本 vi /tmp/change.sh #!/bin/bash #需要替换的包名称 bmc=$1 #需要替换的文件名称 hhwjmc=$2 #找到替换文件路 ...

  3. linux 目录中的文件和子目录生成jar包文件的方法

    linux 目录中的文件和子目录生成jar包文件的方法 jar cvf spark-libs.jar -C //usr/cwgis/app/spark/jars/ .//注意:.点前面有一个空格 [r ...

  4. java 修改 jar 包文件内容的一个实例

    开发这个小工具的初衷是为了修改工具 jar 包中的配置文件 本来打算将这个功能集成到 工具 jar 包自身 但是这里貌似有点儿问题,因为该 jar 包文件当前正在被 java 虚拟机使用,所以无法对其 ...

  5. 解压jar包并重新打包

    解压jar包并重新打包 解压jar包并重新打包 前言:你可能会有这么一个需求,你有一个jar包,你因为某些原因要修改部分class文件,然后将其重新打包. 那么,我们应该怎么做呢? 其实,很简单,你需 ...

  6. java配置pom安装依赖包,Maven pom.xml 添加本地jar包依赖以及打包方法

    Maven项目打包时,如果遇到需要添加本地jar包依赖的时候,可以选择两种方法: 1. 安装到本地仓库 第一种方法比较常规,适用于需要添加的jar包也是由maven项目导出,含有pom文件的时候.只需 ...

  7. Eclipse安装低版本4.3并安装FatJar打包插件来打包引用第三方jar包的项目成jar包

    场景 Eclipse中打包引用了第三方jar包的Java Application项目,除了添加MANIFESE.MF文件,还可以使用 Fat Jar插件打成jar包. 但是Eclipse的版本在4.3 ...

  8. linux系列之-jar包文件替换

    1.书写背景 相信大家都碰到过项目发包,因为某种小问题需要重新发包,但是这种改动非常小,网络不好的情况下发包啥的相当耗时,特别是网络不好,包又特别大的时候,那就更加难受了,我想着要是直接替换jar包里 ...

  9. Maven引入本地jar包,解决打包时找不到本地jar包

    springboot,maven引入本地jar,生成pdf使用,找不到类问题 参考:Maven引入本地jar包,解决打包时找不到本地jar包 日志 Caused by: java.lang.NoCla ...

最新文章

  1. 剑指offer:第一个只出现一次的字符
  2. grub legacy
  3. 不信任的 .exe 怎么办,用 Windows 沙盒啊!
  4. uboot阅读笔记之cpu工作模式(SVC32)
  5. mysql 快速导出_mysql 快速导入导出
  6. FAQ系列 | 几种常见MySQL无法启动案例
  7. “已使用指定的进程(“Web Management Service”)连接到远程计算机,但未能验证服务器的证书”的解决方案
  8. JS内置对象方法——array
  9. Esp8266+ssd1306液晶屏+microPython
  10. arcgis创建城市路网
  11. java压缩和解压ZIP和RAR文件踩坑实践
  12. 电脑远程连接打印机打印
  13. chrome插件实现简单网页实时翻译
  14. 浅析 PHP 官方自动化测试方法
  15. Python小技巧:将 1M 图片优化压缩到 1024kb,简单到手到擒来
  16. android数学公式编辑,数学公式编辑器下载-数学方程式编辑器APP 2.122 安卓版-我游网...
  17. uni-app生成分享图片( 使用 Painter 生成分享海报)
  18. 每个程序员都应该了解的 CPU 高速缓存 英文原文:Memory part 2: CPU caches
  19. 【网络流量监控工具之Nethogs】
  20. SATA3.0中FIS的八种类型

热门文章

  1. Originality Self-portrait 创意自画像——p5.js
  2. traceroute安装和使用测试端口联通
  3. mysql 查询前两名_Mysql:查询每门课程成绩的前两名
  4. netcore使用ImageSharp裁切图片
  5. 怎样将pdf转换成txt格式
  6. servlet有哪几种?
  7. 短视频素材来源有哪些?如何找到优质的抖音素材做剪辑?
  8. ViewStateMode與EnableViewState的差別(转)
  9. 通过Textfree收发的免费短信达200亿条
  10. mysql 怎么表示正无穷_“2到正无穷”用符号怎么表示?