windows10系统下替换、修改jar中的文件并重新打包成jar文件然后运行

目录

1、jar文件简述

JAR 文件就是 Java Archive ( Java 档案文件),它是 Java 的一种文档格式。 JAR 文件非常类似 ZIP 文件。准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,多出了一个META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的 (也可以自行创建)。

2、问题来源

直接复制粘贴替换打包好的jar包里对应lib包下的一些包,然后通过java -jar启动项目报错。

3、操作步骤

3.1 解压jar包

首先,在要操作的jar文件上边cmd打开命令提示符窗口,(也可以打开命令行cd进入到 jar包 所在的目录)

在cmd命令下执行 jar -xvf xxx.jar 解压jar包(其中xxx.jar换成你的jar包名)

命令如下:

powershell 复制代码
jar -xvf marriage-admin-1.0.0.jar

结果示例:

3.2 替换或者更改操作

  • 需求1:替换文件

    如果要替换jar压缩文件里lib下的jar包,在BOOT-INF的lib文件夹下直接粘贴替换即可。

  • 需求2:

    假如要修改配置文件

    修改 BOOT-INF\classes\application-test.yml 中的数据库连接 url: jdbc:mysql://127.0.0.1:3306/(原来是 jdbc:mysql://192.192.192.55:3306),并把连接测试环境数据库账号和密码改成本地连接的账号和密码保存。

3.3 重新打成jar包

命令:

powershell 复制代码
jar -uvf0 marriage-admin-1.0.0.jar.jar BOOT-INF

然后回到cmd命令中执行 jar -uvf0 iotp-adss-V1.0.0.3.jar BOOT-INF

此命令表示将修改后的BOOT-INF文件夹重新压缩到iotp-adss-V1.0.0.3.jar包中。

3.4 确认是否修改成功

再使用解压工具打开 jar包,查看替换的文件是否替换了,或者修改配置的端口确实改好了(也可以解压后看),如下图所示:

3.5 运行程序

在Windows系统下运行 jar 包程序。

命令:

powershell 复制代码
java -jar iotp-adss-V1.0.0.3.jar

jar 包成功运行。

注意:如果不报错下边就不用看了,到此结束,如果报错,看下边。

如果你的报错,可以试试重新打成jar包时用这个指令jar -cfM0 ../xxx.jar ./,重点是cfM0指令------如果用普通指令 jar -cvf xxx.jar ./ 或winrar压缩工具会导致内部的jar文件会被二次压缩 ,导致重新打包后的jar无法正常运行,而cfM0指令可以防止打包的过程中将文件二 次压缩。

附录:常见命令参数

本文到此结束,如有不足之处,欢迎批评指正。

相关推荐
进击的码码码码N24 分钟前
HttpServletRequestWrapper存储Request
java·开发语言·spring
weixin_lynhgworld1 小时前
旧物回收小程序系统开发——开启绿色生活新篇章
java·小程序·生活
野蛮人6号1 小时前
黑马点评系列问题之p44实战篇商户查询缓存 jmeter如何整
java·redis·jmeter·黑马点评
书唐瑞1 小时前
Percona pt-archiver 出现长事务
java·服务器·数据库
Zz_waiting.2 小时前
Java 算法解析 - 双指针
java·开发语言·数据结构·算法·leetcode·双指针
27669582922 小时前
拼多多小程序 anti_content 分析
java·javascript·python·node·拼多多·anti-content·anti_content
顽疲2 小时前
从零用java实现 小红书 springboot vue uniapp(14) 集成阿里云短信验证码
java·vue.js·spring boot·阿里云·uni-app
LUCIAZZZ2 小时前
final修饰符不可变的底层
java·开发语言·spring boot·后端·spring·操作系统
穿条秋裤到处跑2 小时前
MapStruct类型转换接口未自动注入到spring容器中
java·spring·mapstruct
wsj__WSJ2 小时前
Spring Boot 请求参数绑定:全面解析常用注解及最佳实践
java·spring boot·后端